IWsdlImportExtension.ImportContract Methode

Definition

Wird beim Importieren eines Vertrags aufgerufen.

public:
 void ImportContract(System::ServiceModel::Description::WsdlImporter ^ importer, System::ServiceModel::Description::WsdlContractConversionContext ^ context);
public void ImportContract(System.ServiceModel.Description.WsdlImporter importer, System.ServiceModel.Description.WsdlContractConversionContext context);
abstract member ImportContract : System.ServiceModel.Description.WsdlImporter * System.ServiceModel.Description.WsdlContractConversionContext -> unit
Public Sub ImportContract (importer As WsdlImporter, context As WsdlContractConversionContext)

Parameter

importer
WsdlImporter

Der Importeur.

context
WsdlContractConversionContext

Der zu ändernde Importkontext.

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

Die ImportContract Methode wird aufgerufen, wenn ein Vertrag importiert wird. Sie können den Vertrag ändern oder andere Exportverhaltensweisen wie System.ServiceModel.Description.IServiceContractGenerationExtension z. B. und objekte System.ServiceModel.Description.IOperationContractGenerationExtension einfügen, um den für den Vertrag generierten Code zu ändern.

Gilt für: