IOperationContractGenerationExtension 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.
Definiert die während der Vertragsgenerierung aufgerufenen Methoden, die zum Ändern des generierten Codes für einen Vorgang verwendet werden können.
public interface class IOperationContractGenerationExtension
public interface IOperationContractGenerationExtension
type IOperationContractGenerationExtension = interface
Public Interface IOperationContractGenerationExtension
Beispiele
Im folgenden Codebeispiel wird eine Implementierung der GenerateOperation-Methode veranschaulicht, mit der dem Kommentarabschnitt des Vorgangs eine Zeichenfolge mithilfe des System.CodeDom-Namespaces hinzugefügt wird.
Im folgenden Codebeispiel wird veranschaulicht, wie ein Vorgangsverhalten, das IOperationContractGenerationExtension implementiert, während des Aufrufs von OperationDescription.Behaviors in die IWsdlImportExtension.ImportContract-Auflistung eingefügt wird.
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 schließlich der in sowohl Visual Basic als auch C# generierte Vorgang veranschaulicht.
/// 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;
}
}
'''From WSDL Documentation:
'''
'''<summary>The string for the Name data member.</summary>
'''
<System.Runtime.Serialization.DataMemberAttribute()> _
Public Property Name() As String
Get
Return Me.NameField
End Get
Set
Me.NameField = value
End Set
End Property
Hinweise
Implementiert die IOperationContractGenerationExtension-Schnittstelle für ein Vorgangsverhalten (ein System.ServiceModel.Description.IOperationBehavior-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 OperationDescription.Behaviors oder IWsdlImportExtension.ImportContract ein benutzerdefiniertes Vorgangsverhalten in die IWsdlImportExtension.ImportEndpoint-Auflistung ein.
Methoden
GenerateOperation(OperationContractGenerationContext) |
Implementieren Sie dies, um das Code Document Object Model vor dem Vertragsgenerierungsprozess zu ändern. |