Compartir a través de


Generación de un cliente WCF a partir de metadatos de servicio

En este tema se describe cómo usar los distintos interruptores en Svcutil.exe para generar clientes desde documentos de metadatos.

Los documentos de metadatos pueden estar en un almacenamiento duradero o recuperarse en línea. La recuperación en línea sigue el protocolo WS-MetadataExchange o el protocolo detección de Microsoft (DISCO). Svcutil.exe emite las siguientes solicitudes de metadatos simultáneamente para recuperar metadatos:

  • Solicitud WS-MetadataExchange (MEX) a la dirección proporcionada.

  • Solicitud MEX a la dirección proporcionada con /mex anexado.

  • Solicitud DISCO (con el uso de DiscoveryClientProtocol de los servicios web de ASP.NET) a la dirección proporcionada.

Svcutil.exe genera el cliente en función del lenguaje de descripción de servicios web (WSDL) o del archivo de directiva recibido del servicio. El nombre principal de usuario (UPN) se genera mediante la concatenación del nombre de usuario con "@" y, a continuación, se agrega un nombre de dominio completo (FQDN). Sin embargo, para los usuarios registrados en Active Directory, este formato no es válido y el UPN que genera la herramienta produce un error en la autenticación Kerberos con el siguiente mensaje de error: Error en el intento de inicio de sesión. Para resolver este problema, corrija manualmente el archivo de cliente que generó la herramienta.

svcutil.exe [/t:code]  <metadataDocumentPath>* | <url>* | <epr>  

Hacer referencia a tipos y compartirlos

Opción Descripción
/reference:<ruta de archivo> Hace referencia a tipos en el ensamblado especificado. Al generar clientes, use esta opción para especificar ensamblados que puedan contener tipos que representen los metadatos que se importan.

Formato corto: /r
/excludeType:<type> Especifica un nombre de tipo completo o calificado con el nombre de ensamblado que se va a excluir de los tipos de contrato a los que se hace referencia.

Formato corto: /et

Elección de un serializador

Opción Descripción
/serializer:Auto Selecciona automáticamente el serializador. Esto usa el DataContract serializador. Si se produce un error, entonces se usa XmlSerializer.

Formulario corto: /ser:Auto
/serializer:DataContractSerializer Genera tipos de datos que utilizan el serializador DataContract para la serialización y deserialización.

Formato corto: /ser:DataContractSerializer
/serializer:XmlSerializer Genera tipos de datos que usan el XmlSerializer para la serialización y deserialización.

Formato corto: /ser:XmlSerializer
/importXmlTypes Configura el serializador DataContract para que importe tipos que no sean de DataContract como tipos IXmlSerializable.

Formato corto: /ixt
/dataContractOnly Genera código solo para DataContract tipos. Se generan los tipos ServiceContract.

Debe especificar solo los archivos de metadatos locales para esta opción.

Formato corto: /dconly

Elección de un idioma para el cliente

Opción Descripción
/language:<language> Especifica el lenguaje de programación que se va a usar para la generación de código. Proporcione un nombre de idioma registrado en el archivo Machine.config o el nombre completo de una clase que herede de CodeDomProvider.

Valores: c#, cs, csharp, vb, vbs, visualbasic, vbscript, javascript, c++, mc, cpp

Valor predeterminado: csharp

Formato corto: /l

Para obtener más información, consulte CodeDomProvider clase.

Elección de un espacio de nombres para el cliente

Opción Descripción
/namespace:<string,string> Especifica una asignación desde un esquema WSDL o XML targetNamespace a un espacio de nombres de Common Language Runtime (CLR). El uso de un asterisco (*) para el targetNamespace asigna todos los targetNamespaces sin una asignación explícita a ese espacio de nombres de CLR.

Para asegurarse de que el nombre de contrato de mensaje no produce una colisión con el nombre de la operación, debería certificar o la referencia de tipo con dos puntos dobles (::) o asegurarse de que los nombres son únicos.

Valor predeterminado: derivado del espacio de nombres de destino del documento de esquema para DataContracts. El espacio de nombres predeterminado se usa para todos los demás tipos generados.

Formato corto: /n

Elección de un enlace de datos

Opción Descripción
/enableDataBinding Implementa la interfaz INotifyPropertyChanged en todos los tipos DataContract para habilitar la vinculación de datos.

Formato corto: /edb

Generación de la configuración

Opción Descripción
/config:<configFile> Especifica el nombre de archivo para el archivo de configuración generado.

Valor predeterminado: output.config
/mergeConfig Combina la configuración generada en un archivo existente, en lugar de sobrescribir el archivo existente.
/noConfig No genere archivos de configuración.

Consulte también