IWsdlImportExtension Interfejs
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zaimplementuj WsdlImporter i dołącz do obiektu, aby kontrolować sposób mapowania części języka WSDL (Web Services Description Language) importera na te z ServiceDescription obiektu.
public interface class IWsdlImportExtension
public interface IWsdlImportExtension
type IWsdlImportExtension = interface
Public Interface IWsdlImportExtension
- Pochodne
Przykłady
Poniższy przykład kodu pokazuje użycie IWsdlImportExtension metody , aby dodać element System.ServiceModel.Description.IServiceContractGenerationExtension i System.ServiceModel.Description.IOperationContractGenerationExtension ( WsdlDocumentationImporter
w tym przypadku ), aby zmodyfikować wygenerowany kod klienta WCF na poziomie interfejsu i operacji.
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));
}
}
}
}
W poniższym przykładzie kodu pokazano, jak skonfigurować system metadanych klienta do używania niestandardowego IWsdlImportExtension pliku konfiguracji aplikacji.
<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>
Uwagi
Zaimplementuj IWsdlImportExtension interfejs, aby kontrolować mapowanie między obiektami WSDL i ServiceEndpoint i ContractDescription , zwłaszcza podczas odczytywania niestandardowych rozszerzeń WSDL w celu zmodyfikowania informacji o kontrakcie lub punkcie końcowym. Następnie dołącz obiekt niestandardowy IWsdlImportExtension do WsdlImporter pliku konfiguracji aplikacji programowo lub za pomocą pliku konfiguracji aplikacji. Obiekt niestandardowy IWsdlImportExtension można również dołączyć do wewnętrznego WsdlImporter elementu używanego przez narzędzie ServiceModel Metadata Tool (Svcutil.exe) przy użyciu pliku konfiguracji aplikacji.
Metoda jest wywoływana ImportContract w celu zaimportowania kontraktu.
BeforeImport Użyj metody , aby zmodyfikować metadane, które następnie są importowane do ServiceEndpoint obiektów i ContractDescription .
Metody
BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>) |
Wywoływane przed zaimportowaniem dokumentów metadanych. |
ImportContract(WsdlImporter, WsdlContractConversionContext) |
Wywoływana podczas importowania kontraktu. |
ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext) |
Wywoływana podczas importowania punktu końcowego. |