IOperationContractGenerationExtension Interfaccia
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Definisce i metodi chiamati durante la generazione del contratto che possono essere utilizzati per modificare il codice generato per un'operazione.
public interface class IOperationContractGenerationExtension
public interface IOperationContractGenerationExtension
type IOperationContractGenerationExtension = interface
Public Interface IOperationContractGenerationExtension
Esempio
Nell'esempio di codice seguente viene illustrata l'implementazione del metodo GenerateOperation che aggiunge una stringa alla sezione dei commenti dell'operazione utilizzando lo spazio dei nomi System.CodeDom.
L'esempio di codice seguente illustra come il comportamento dell'operazione che implementa IOperationContractGenerationExtension viene inserito nella raccolta di OperationDescription.Behaviors durante la chiamata a 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));
}
}
}
}
Nell'esempio di codice seguente viene infine illustrata l'operazione generata sia in Visual Basic che in 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
Commenti
Implementare l'interfaccia IOperationContractGenerationExtension in un comportamento dell'operazione (di tipo System.ServiceModel.Description.IOperationBehavior) per consentire la modifica del codice generato quando un contratto o un endpoint viene compilato nel codice. In genere, un'interfaccia System.ServiceModel.Description.IWsdlImportExtension personalizzata inserisce un comportamento dell'operazione personalizzato nella raccolta di proprietà OperationDescription.Behaviors durante la chiamata a IWsdlImportExtension.ImportContract o a IWsdlImportExtension.ImportEndpoint.
Metodi
GenerateOperation(OperationContractGenerationContext) |
Procedere all'implementazione per modificare l'oggetto CodeDOM (Code Document Object Model) prima del processo di generazione del contratto. |