Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En Windows Communication Foundation (WCF), exportar metadatos es el proceso de describir los puntos de conexión de servicio y proyectarlos en una representación estandarizada y paralela que los clientes pueden usar para comprender cómo usar el servicio. La importación de metadatos del servicio es el proceso de generar ServiceEndpoint instancias o partes a partir de los metadatos del servicio.
Exportación de metadatos
Para exportar metadatos desde System.ServiceModel.Description.ServiceEndpoint instancias, use una implementación de la MetadataExporter clase abstracta. El WsdlExporter tipo es la implementación de la MetadataExporter clase abstracta incluida con WCF.
El tipo System.ServiceModel.Description.WsdlExporter genera los metadatos del Lenguaje de descripción de servicios Web (WSDL) con expresiones de directiva adjuntas encapsuladas en una instancia de MetadataSet. Puede usar una System.ServiceModel.Description.WsdlExporter instancia para exportar de forma iterativa metadatos para ContractDescription objetos y ServiceEndpoint objetos. También puede exportar una colección de objetos y asociarlos a un nombre de ServiceEndpoint servicio específico.
Nota:
Solo puede usar WsdlExporter
para exportar metadatos de instancias ContractDescription
que contengan información de tipos de Common Language Runtime (CLR), como una instancia ContractDescription
creada mediante el método ContractDescription.GetContract
o como parte de ServiceDescription
para una instancia ServiceHost
. No se puede usar WsdlExporter
para exportar metadatos de instancias importadas de ContractDescription
metadatos del servicio ni construidas sin información de tipo.
Importación de metadatos
Importación de documentos WSDL
Para importar metadatos de servicio en WCF, use una implementación de la MetadataImporter clase abstracta. El System.ServiceModel.Description.WsdlImporter tipo es la implementación de la MetadataImporter clase abstracta incluida con WCF. El WsdlImporter tipo importa metadatos de WSDL con directivas adjuntas agrupadas en un MetadataSet objeto .
El WsdlImporter tipo le proporciona control sobre cómo importar los metadatos. Puede importar todos los puntos de conexión, todos los enlaces o todos los contratos. Puede importar todos los puntos de conexión asociados a un servicio WSDL específico, enlace o tipo de puerto. También puede importar el punto de conexión para un puerto WSDL específico, la vinculación para una unión WSDL específica o el contrato para un tipo de puerto WSDL específico.
WsdlImporter También expone una KnownContracts propiedad que permite especificar un conjunto de contratos que no es necesario importar. WsdlImporter utiliza los contratos en la propiedad KnownContracts en lugar de importar un contrato con el mismo nombre completo de los metadatos.
Importación de directivas
El tipo WsdlImporter recoge las expresiones de directivas adjuntas al mensaje, operación y los sujetos de directiva del punto de conexión y, a continuación, utiliza las implementaciones IPolicyImportExtension en la colección PolicyImportExtensions para importar las expresiones de directiva.
La lógica de importación de políticas controla automáticamente las referencias a expresiones de política en el mismo documento WSDL y se identifica con un atributo wsu:Id
o xml:id
. La lógica de importación de directivas protege las aplicaciones frente a referencias de directivas circulares limitando el tamaño de una expresión de directiva a 4096 nodos, donde un nodo es uno de los siguientes elementos: wsp:Policy
, wsp:All
, wsp:ExactlyOne
, wsp:policyReference
.
La lógica de importación de directivas también normaliza automáticamente las expresiones de directiva. Las expresiones de directiva anidadas y el wsp:Optional
atributo no se normalizan. La cantidad de procesamiento de normalización realizado se limita a 4.096 pasos, donde cada paso produce una aserción de directiva, o un elemento secundario de un elemento wsp:ExactlyOne
.
El tipo WsdlImporter prueba hasta 32 combinaciones de alternativas de directivas adjuntas a los distintos sujetos de directivas de WSDL. Si ninguna combinación importa limpiamente, la primera combinación se usa para construir un enlace personalizado parcial.
Tratamiento de errores
Tanto los tipos MetadataExporter como MetadataImporter exponen una propiedad Errors
que puede contener una colección de mensajes de error y advertencia encontrados durante los procesos de exportación e importación, respectivamente, que se pueden usar al implementar herramientas.
El WsdlImporter tipo produce generalmente una excepción para una excepción detectada durante el proceso de importación y agrega un error correspondiente a su Errors
propiedad. Sin embargo, los ImportAllContracts, ImportAllBindings, ImportAllEndpoints y ImportEndpoints no lanzan estas excepciones, por lo que debe comprobar la propiedad Errors
para determinar si se produjo algún problema al llamar a estos métodos.
El tipo vuelve a producir WsdlExporter cualquier excepción detectada durante el proceso de exportación. Estas excepciones no se capturan como errores en la Errors
propiedad . WsdlExporter Una vez que se produce una excepción, se encuentra en un estado defectuoso y no se puede reutilizar. WsdlExporter agrega advertencias a su propiedad Errors
cuando no se puede exportar una operación porque utiliza acciones de carácter comodín y cuando se encuentran nombres de enlace duplicados.
En esta sección
Cómo importar metadatos en los puntos de conexión del servicio
Describe cómo importar metadatos descargados en objetos de descripción.
Cómo: Exportar metadatos desde puntos de conexión de servicio
Describe cómo exportar objetos de descripción a metadatos.
Descripción del Servicio y Referencia WSDL
Describe el mapeo entre los objetos de descripción y WSDL.
Cómo: Usar Svcutil.exe para exportar metadatos desde código de servicio compilado
Describe el uso de Svcutil.exe para exportar metadatos para servicios, contratos y tipos de datos en ensamblados compilados.
Referencia del esquema del contrato de datos
Describe el subconjunto del esquema XML (XSD) utilizado por DataContractSerializer para describir los tipos de Common Language Runtime (CLR) para la serialización XML.