IWsdlImportExtension Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Implementa e anexa a um objeto WsdlImporter para controlar como o importador mapeia blocos de WSDL (linguagem WSDL) para aqueles que são de um objeto ServiceDescription.
public interface class IWsdlImportExtension
public interface IWsdlImportExtension
type IWsdlImportExtension = interface
Public Interface IWsdlImportExtension
- Derivado
Exemplos
O exemplo de código a seguir mostra o uso para IWsdlImportExtension adicionar um System.ServiceModel.Description.IServiceContractGenerationExtension e um System.ServiceModel.Description.IOperationContractGenerationExtension (o WsdlDocumentationImporter
, neste caso) para modificar o código do cliente WCF gerado no nível de interface e operação.
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));
}
}
}
}
O exemplo de código a seguir mostra como configurar o sistema de metadados do cliente para usar o personalizado IWsdlImportExtension de um arquivo de configuração de aplicativo.
<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>
Comentários
Implemente a IWsdlImportExtension interface para controlar o mapeamento entre WSDL e ContractDescription ServiceEndpoint objetos, especialmente ao ler extensões personalizadas do WSDL para modificar suas informações de contrato ou ponto de extremidade. Em seguida, anexe seu objeto personalizado IWsdlImportExtension a um WsdlImporter programaticamente ou usando um arquivo de configuração de aplicativo. Você também pode anexar seu objeto personalizado IWsdlImportExtension ao interno WsdlImporter usado pela ServiceModel Metadata Utility Tool (Svcutil.exe) usando um arquivo de configuração de aplicativo.
O ImportContract método é chamado para importar um contrato.
Use o BeforeImport método para modificar os metadados que são então importados ServiceEndpoint e ContractDescription objetos.
Métodos
BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>) |
Chamado antes da importação de documentos de metadados. |
ImportContract(WsdlImporter, WsdlContractConversionContext) |
Chamado ao importar um contrato. |
ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext) |
Chamado ao importar um ponto de extremidade. |