Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

IServiceContractGenerationExtension-Schnittstelle

 

Veröffentlicht: Oktober 2016

Definiert die während der Vertragsgenerierung aufgerufenen Methoden, die zum Ändern des generierten Codes für einen Dienstvertrag verwendet werden können.

Namespace:   System.ServiceModel.Description
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public interface IServiceContractGenerationExtension

NameBeschreibung
System_CAPS_pubmethodGenerateContract(ServiceContractGenerationContext)

Implementieren Sie dies, um das Code Document Object Model vor dem Vertragsgenerierungsprozess zu ändern.

Implementiert die IServiceContractGenerationExtension-Schnittstelle für ein Vertragsverhalten (ein System.ServiceModel.Description.IContractBehavior-Typ), um den beim Kompilieren eines Vertrags oder Endpunkts generierten Code zu ändern.

In der Regel fügt eine benutzerdefinierte System.ServiceModel.Description.IWsdlImportExtension während des Aufrufs von ContractDescription.Behaviors oder ImportContract ein benutzerdefiniertes Vertragsverhalten in die ImportEndpoint-Auflistung ein.

Im folgenden Codebeispiel wird das Hinzufügen einer IServiceContractGenerationExtension zur ContractDescription.Behaviors-Eigenschaft während des Aufrufs zum ImportContract veranschaulicht.

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));
			}
		}
	}
}

Im folgenden Codebeispiel wird eine Implementierung von GenerateContract veranschaulicht, die dem für einen Dienstvertrag generierten Code Kommentare hinzufügt.

public void GenerateContract(ServiceContractGenerationContext context)
{
  Console.WriteLine("In generate contract.");
  context.ContractType.Comments.AddRange(Formatter.FormatComments(commentText));
}

Im folgenden Codebeispiel werden die generierten Kommentare für den Dienstvertrag gezeigt.

/// From WSDL Documentation:
/// 
/// <summary>The string for the Name data member.</summary> 
/// 
[System.Runtime.Serialization.DataMemberAttribute()]
public string Name
{
    get
    {
        return this.NameField;
    }
    set
    {
        this.NameField = value;
    }
}

.NET Framework
Verfügbar seit 3.0
Zurück zum Anfang
Anzeigen: