IServiceContractGenerationExtension 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 pueden utilizarse para modificar el código generado para un contrato de servicio.
public interface class IServiceContractGenerationExtension
public interface IServiceContractGenerationExtension
type IServiceContractGenerationExtension = interface
Public Interface IServiceContractGenerationExtension
Ejemplos
El ejemplo de código siguiente muestra cómo agregar IServiceContractGenerationExtension a la propiedad ContractDescription.Behaviors durante la llamada a 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));
}
}
}
}
Los ejemplos de código siguientes muestran la implementación de GenerateContract que agrega comentarios al código generado para un contrato del servicio.
public void GenerateContract(ServiceContractGenerationContext context)
{
Console.WriteLine("In generate contract.");
context.ContractType.Comments.AddRange(Formatter.FormatComments(commentText));
}
El ejemplo de código siguiente muestra los comentarios generados en el contrato del servicio.
/// 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 IServiceContractGenerationExtension en un comportamiento de contrato (un tipo System.ServiceModel.Description.IContractBehavior) para habilitarlo y modificar el código generado cuando un contrato o extremo está compilado en el código.
Normalmente, un System.ServiceModel.Description.IWsdlImportExtension personalizado inserta un comportamiento del contrato personalizado en la colección ContractDescription.Behaviors durante la llamada a ImportContract, o ImportEndpoint.
Métodos
GenerateContract(ServiceContractGenerationContext) |
Implemente para modificar el Code Document Object Model antes del proceso de generación de contrato. |