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 Sie dies und hängen Sie es an ein WsdlImporter-Objekt an, um zu steuern, wie das Importprogramm WSDL-Teile (Web Services Description Language) den entsprechenden Teilen eines ServiceDescription-Objekts zuordnet.
public interface class IWsdlImportExtension
public interface IWsdlImportExtension
type IWsdlImportExtension = interface
Public Interface IWsdlImportExtension
- Abgeleitet
Beispiele
Im folgenden Codebeispiel wird gezeigt, IWsdlImportExtension wie Sie eine und eine System.ServiceModel.Description.IServiceContractGenerationExtension System.ServiceModel.Description.IOperationContractGenerationExtension (in WsdlDocumentationImporter
diesem Fall) hinzufügen, um generierten WCF-Clientcode auf Der Schnittstelle und Vorgangsebene zu ändern.
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 das Clientmetadaten-System für die Verwendung der benutzerdefinierten IWsdlImportExtension in einer Anwendungskonfigurationsdatei konfiguriert wird.
<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 ServiceEndpoint-Objekten und ContractDescription-Objekten zu steuern, insbesondere beim Lesen von benutzerdefinierten WSDL-Erweiterungen zum Ändern der Vertrags- oder Endpunktinformationen. Fügen Sie dann das benutzerdefinierte IWsdlImportExtension-Objekt entweder programmgesteuert oder durch Verwendung einer Anwendungskonfigurationsdatei einem WsdlImporter hinzu. Sie können Ihr benutzerdefiniertes IWsdlImportExtension Objekt auch mit einer Anwendungskonfigurationsdatei an das interne objekt anfügen, das WsdlImporter vom ServiceModel-Metadaten-Hilfstool (Svcutil.exe) 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 das ServiceEndpoint-Objekt und das ContractDescription-Objekt importiert werden.
Methoden
BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>) |
Dies wird vor dem Importieren von Metadaten-Dokumenten aufgerufen. |
ImportContract(WsdlImporter, WsdlContractConversionContext) |
Wird beim Importieren eines Vertrags aufgerufen. |
ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext) |
Wird beim Importieren eines Endpunkts aufgerufen. |