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 modificadores de Svcutil.exe para generar clientes a partir de 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:

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

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

  • Solicitud DISCO (usando desde DiscoveryClientProtocol ASP.NET servicios web) 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>  

Referencia y tipos de uso compartido

Opción Descripción
/reference:<file path> Tipos de referencia en el ensamblado especificado. Al generar clientes, utilice esta opción para especificar ensamblados que podrían contener tipos que representan los metadatos que se están importando.

Forma abreviada: /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.

Forma abreviada: /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, XmlSerializer se usa .

Forma abreviada: /ser:Auto
/serializer:DataContractSerializer Genera tipos de datos que usan el serializador para la serialización y deserialización DataContract .

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

Forma abreviada: /ser:XmlSerializer
/importXmlTypes Configura el DataContract serializador para importar tipos que noDataContract son IXmlSerializable tipos.

Forma abreviada: /ixt
/dataContractOnly Genera código solo para DataContract tipos. ServiceContract se generan tipos.

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

Forma abreviada: /dconly

Elección de un idioma para el cliente

Opción Descripción
/language:<language> Especifica el lenguaje de programación a utilizar 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

Forma abreviada: /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 de un esquema targetNamespace WSDL o XML a un espacio de nombres de Common Language Runtime (CLR). Usar un carácter comodín (*) para los targetNamespace mapas todos sin targetNamespaces una asignación explícita a ese espacio de nombres CLR.

Para asegurarse de que el nombre del contrato de mensaje no entra en conflicto con el nombre de la operación, califica la referencia de tipo con dos puntos dobles (::) o asegúrese 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 utiliza para todos los otros tipos generados.

Forma abreviada: /n

Elección de un enlace de datos

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

Forma abreviada: /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 generar archivos de configuración.

Consulte también