IWsdlImportExtension Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Implementieren und Anfügen an ein WsdlImporter Objekt, um zu steuern, wie der Importer Web Services Description Language (WSDL)-Teile mit denen eines ServiceDescription Objekts verknüpft.
public interface class IWsdlImportExtension
public interface IWsdlImportExtension
type IWsdlImportExtension = interface
Public Interface IWsdlImportExtension
- Abgeleitet
Beispiele
Das folgende Codebeispiel zeigt die Verwendung des Hinzufügens eines und einer (in diesem Fall), um generierten WCF-Clientcode auf Schnittstelle und Vorgangsebene zu ändern.The following code shows the use of IWsdlImportExtension add an System.ServiceModel.Description.IServiceContractGenerationExtension and an System.ServiceModel.Description.IOperationContractGenerationExtension (the WsdlDocumentationImporter, in this case) to modify generated WCF client code at the interface and operation level.
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));
}
}
}
}
Das folgende Codebeispiel zeigt, wie Sie das Clientmetadatensystem so konfigurieren, dass er die benutzerdefinierte IWsdlImportExtension aus einer Anwendungskonfigurationsdatei verwendet.
<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>
Hinweise
Implementieren Sie die IWsdlImportExtension Schnittstelle, um die Zuordnung zwischen WSDL und ContractDescriptionServiceEndpoint Objekten zu steuern, insbesondere beim Lesen von benutzerdefinierten WSDL-Erweiterungen, um Ihre Vertrags- oder Endpunktinformationen zu ändern. Fügen Sie das benutzerdefinierte IWsdlImportExtension Objekt dann programmgesteuert oder mithilfe einer Anwendungskonfigurationsdatei an WsdlImporter . Sie können Ihr benutzerdefiniertes IWsdlImportExtension Objekt auch an das interne WsdlImporter objekt anfügen, das vom ServiceModel Metadata Utility Tool (Svcutil.exe) mithilfe einer Anwendungskonfigurationsdatei verwendet wird.
Die ImportContract Methode wird aufgerufen, um einen Vertrag zu importieren.
Verwenden Sie die BeforeImport Methode, um die Metadaten zu ändern, die dann in ServiceEndpoint und ContractDescription Objekte importiert werden.
Methoden
| Name | Beschreibung |
|---|---|
| BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>) |
Wird vor dem Importieren von Metadatendokumenten aufgerufen. |
| ImportContract(WsdlImporter, WsdlContractConversionContext) |
Wird beim Importieren eines Vertrags aufgerufen. |
| ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext) |
Wird beim Importieren eines Endpunkts aufgerufen. |