IOperationContractGenerationExtension Interfejs
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Definiuje metody wywoływane podczas generowania kontraktu, które mogą służyć do modyfikowania wygenerowanego kodu dla operacji.
public interface class IOperationContractGenerationExtension
public interface IOperationContractGenerationExtension
type IOperationContractGenerationExtension = interface
Public Interface IOperationContractGenerationExtension
Przykłady
Poniższy przykład kodu przedstawia implementację GenerateOperation metody, która dodaje ciąg do sekcji komentarzy operacji przy użyciu System.CodeDom przestrzeni nazw.
Poniższy przykład kodu pokazuje, jak zachowanie operacji implementujące jest wstawiane IOperationContractGenerationExtension do OperationDescription.Behaviors kolekcji podczas wywołania metody IWsdlImportExtension.ImportContract.
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));
}
}
}
}
Na koniec poniższy przykład kodu przedstawia operację wygenerowaną w języku Visual Basic i C#.
/// 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
Uwagi
Zaimplementuj IOperationContractGenerationExtension interfejs na zachowaniu operacji ( System.ServiceModel.Description.IOperationBehavior typ), aby umożliwić modyfikowanie kodu wygenerowanego podczas kompilowania kontraktu lub punktu końcowego w kodzie. Zazwyczaj niestandardowe System.ServiceModel.Description.IWsdlImportExtension wstawia zachowanie operacji niestandardowej OperationDescription.Behaviors do kolekcji podczas wywołania metody IWsdlImportExtension.ImportContract lub IWsdlImportExtension.ImportEndpoint.
Metody
GenerateOperation(OperationContractGenerationContext) |
Zaimplementuj, aby zmodyfikować model obiektu dokumentu kodu przed procesem generowania kontraktu. |