IWsdlImportExtension Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Effectuez une implémentation et un attachement à un objet WsdlImporter pour contrôler la façon dont l'importateur mappe des parties Web Services Description Language (WSDL) sur celles d'un objet ServiceDescription.
public interface class IWsdlImportExtension
public interface IWsdlImportExtension
type IWsdlImportExtension = interface
Public Interface IWsdlImportExtension
- Dérivé
Exemples
L’exemple de code suivant montre l’utilisation d’un IWsdlImportExtension System.ServiceModel.Description.IServiceContractGenerationExtension et d’un System.ServiceModel.Description.IOperationContractGenerationExtension (le , dans ce cas) pour modifier le code client WCF généré au niveau de l’interface et de l’opération WsdlDocumentationImporter
.
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));
}
}
}
}
L'exemple de code suivant montre comment configurer le système de métadonnées client pour utiliser l'IWsdlImportExtension personnalisée d'un fichier de configuration de l'application.
<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>
Remarques
Implémentez l'interface IWsdlImportExtension pour contrôler le mappage entre WSDL et les objets ServiceEndpoint et ContractDescription, notamment lors de la lecture d'extensions WSDL personnalisées pour modifier les informations relatives à votre contrat ou point de terminaison. Attachez ensuite votre objet personnalisé IWsdlImportExtension personnalisé à un WsdlImporter, par programme ou à l'aide d'un fichier de configuration de l'application. Vous pouvez également joindre votre objet personnalisé IWsdlImportExtension à l’objet interne WsdlImporter utilisé par l’outil Utilitaire de métadonnées ServiceModel (Svcutil.exe) à l’aide d’un fichier de configuration d’application.
La méthode ImportContract est appelée pour importer un contrat.
Utilisez la méthode BeforeImport pour modifier les métadonnées importées ensuite dans des objets ServiceEndpoint et ContractDescription.
Méthodes
BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>) |
Appelé avant d'importer des documents de métadonnées. |
ImportContract(WsdlImporter, WsdlContractConversionContext) |
Appelé lors de l'importation d'un contrat. |
ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext) |
Appelé lors de l'importation d'un point de terminaison. |