IOperationContractGenerationExtension Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Define los métodos llamados durante la generación del contrato que puede utilizarse para modificar el código generado para una operación.
public interface class IOperationContractGenerationExtension
public interface IOperationContractGenerationExtension
type IOperationContractGenerationExtension = interface
Public Interface IOperationContractGenerationExtension
Ejemplos
El siguiente ejemplo de código muestra la implementación del método GenerateOperation que agrega una cadena a la sección de comentarios de la operación utilizando el espacio de nombres System.CodeDom.
El siguiente ejemplo de código muestra cómo el comportamiento de la operación que implementa IOperationContractGenerationExtension se inserta en la colección OperationDescription.Behaviors durante la llamada 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));
}
}
}
}
Por último, el siguiente ejemplo de código muestra la operación generada tanto en Visual Basic como en 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
Comentarios
Implemente la interfaz IOperationContractGenerationExtension en un comportamiento de la operación (un tipo System.ServiceModel.Description.IOperationBehavior) para habilitarlo y modificar el código generado cuando un contrato o extremo está compilado en el código. Normalmente, una extensión System.ServiceModel.Description.IWsdlImportExtension personalizada inserta un comportamiento de operación personalizado en la colección OperationDescription.Behaviors durante la llamada a IWsdlImportExtension.ImportContract o IWsdlImportExtension.ImportEndpoint.
Métodos
GenerateOperation(OperationContractGenerationContext) |
Implemente para modificar el Code Document Object Model antes del proceso de generación de contrato. |