IWsdlImportExtension Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se implementa y asocia a un objeto WsdlImporter para controlar cómo el importador asigna las partes del Lenguaje de descripción de servicios Web (WSDL) a las de un objeto ServiceDescription.
public interface class IWsdlImportExtension
public interface IWsdlImportExtension
type IWsdlImportExtension = interface
Public Interface IWsdlImportExtension
- Derivado
Ejemplos
En el ejemplo de código siguiente se muestra el uso de IWsdlImportExtension para agregar y System.ServiceModel.Description.IServiceContractGenerationExtension un System.ServiceModel.Description.IOperationContractGenerationExtension objeto (, WsdlDocumentationImporter
en este caso) para modificar el código de cliente WCF generado en el nivel de interfaz y operación.
public void ImportContract(WsdlImporter importer, WsdlContractConversionContext context)
{
Console.Write("ImportContract");
// Contract Documentation
if (context.WsdlPortType.Documentation != null)
{
context.Contract.Behaviors.Add(new WsdlDocumentationImporter(context.WsdlPortType.Documentation));
}
// Operation Documentation
foreach (Operation operation in context.WsdlPortType.Operations)
{
if (operation.Documentation != null)
{
OperationDescription operationDescription = context.Contract.Operations.Find(operation.Name);
if (operationDescription != null)
{
operationDescription.Behaviors.Add(new WsdlDocumentationImporter(operation.Documentation));
}
}
}
}
El ejemplo de código siguiente muestra cómo configurar el sistema de metadatos de cliente para utilizar la IWsdlImportExtension personalizada de un archivo de configuración de la aplicación.
<system.serviceModel>
<client>
<endpoint
address="http://localhost:8000/Fibonacci"
binding="wsHttpBinding"
contract="IFibonacci"
/>
<metadata>
<wsdlImporters>
<extension type="Microsoft.WCF.Documentation.WsdlDocumentationImporter, WsdlDocumentation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</wsdlImporters>
</metadata>
</client>
</system.serviceModel>
Comentarios
Implemente la interfaz IWsdlImportExtension para controlar la asignación entre WSDL, ServiceEndpoint y los objetos ContractDescription, sobre todo al leer las extensiones WSDL personalizadas para modificar su contrato o información de extremo. A continuación, asocie su objeto IWsdlImportExtension personalizado a un WsdlImporter mediante programación o utilizando un archivo de configuración de la aplicación. También puede adjuntar el objeto personalizado IWsdlImportExtension a la herramienta de utilidad de metadatos ServiceModel (Svcutil.exe) que WsdlImporter usa un archivo de configuración de la aplicación.
Se llama al método ImportContract para importar un contrato.
Utilice el método BeforeImport para modificar los metadatos que, a continuación, se importan a ServiceEndpoint y los objetos ContractDescription.
Métodos
BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>) |
Se llama antes de importar los documentos de metadatos. |
ImportContract(WsdlImporter, WsdlContractConversionContext) |
Se llama al importar un contrato. |
ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext) |
Se llama al importar un punto de conexión. |