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ć, jak importer mapuje części WSDL (Web Services Description Language) na części obiektu ServiceDescription .
public interface class IWsdlImportExtension
public interface IWsdlImportExtension
type IWsdlImportExtension = interface
Public Interface IWsdlImportExtension
- Pochodne
Przykłady
W poniższym przykładzie kodu pokazano użycie polecenia IWsdlImportExtension , aby dodać element System.ServiceModel.Description.IServiceContractGenerationExtension i System.ServiceModel.Description.IOperationContractGenerationExtension ( WsdlDocumentationImporterw 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 tak, aby korzystał z 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 interfejs do IWsdlImportExtension sterowania mapowaniem między plikami WSDL i ServiceEndpoint i ContractDescription obiektami, zwłaszcza podczas odczytywania niestandardowych rozszerzeń WSDL w celu modyfikowania informacji o kontrakcie lub punkcie końcowym. Następnie dołącz obiekt niestandardowy IWsdlImportExtension do WsdlImporter obiektu programowego lub przy użyciu pliku konfiguracji aplikacji. Możesz również dołączyć obiekt niestandardowy IWsdlImportExtension 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 są następnie importowane do ServiceEndpoint obiektów i ContractDescription .
Metody
| Nazwa | Opis |
|---|---|
| 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. |