Compartir a través de


WsdlContractConversionContext Clase

Definición

Se pasa a los exportadores e importadores del WSDL personalizados para habilitar la personalización de la exportación de los metadatos y los procesos de importación de un contrato.

public ref class WsdlContractConversionContext
public class WsdlContractConversionContext
type WsdlContractConversionContext = class
Public Class WsdlContractConversionContext
Herencia
WsdlContractConversionContext

Ejemplos

En el ejemplo de código siguiente se muestra cómo se utiliza WsdlContractConversionContext para agregar anotaciones WSDL personalizadas a los metadatos exportados mediante el uso de las propiedades WsdlPortType y Contract.

public void ExportContract(WsdlExporter exporter, WsdlContractConversionContext context)
{
Console.WriteLine("Inside ExportContract");
if (context.Contract != null)
{
    // Inside this block it is the contract-level comment attribute.
    // This.Text returns the string for the contract attribute.
    // Set the doc element; if this isn't done first, there is no XmlElement in the
    // DocumentElement property.
    context.WsdlPortType.Documentation = string.Empty;
    // Contract comments.
    XmlDocument owner = context.WsdlPortType.DocumentationElement.OwnerDocument;
    XmlElement summaryElement = Formatter.CreateSummaryElement(owner, this.Text);
    context.WsdlPortType.DocumentationElement.AppendChild(summaryElement);

    foreach (OperationDescription op in context.Contract.Operations)
    {
        Operation operation = context.GetOperation(op);
        object[] opAttrs = op.SyncMethod.GetCustomAttributes(typeof(WsdlDocumentationAttribute), false);
        if (opAttrs.Length == 1)
        {
            string opComment = ((WsdlDocumentationAttribute)opAttrs[0]).Text;

            // This.Text returns the string for the operation-level attributes.
            // Set the doc element; if this isn't done first, there is no XmlElement in the
            // DocumentElement property.
            operation.Documentation = String.Empty;

            // Operation C# triple comments.
            XmlDocument opOwner = operation.DocumentationElement.OwnerDocument;
            XmlElement newSummaryElement = Formatter.CreateSummaryElement(opOwner, opComment);
            operation.DocumentationElement.AppendChild(newSummaryElement);

            // Get returns information
            ParameterInfo returnValue = op.SyncMethod.ReturnParameter;
            object[] returnAttrs = returnValue.GetCustomAttributes(typeof(WsdlParameterDocumentationAttribute), false);
            if (returnAttrs.Length == 1)
            {
                // <returns>text.</returns>
                XmlElement returnsElement =
                  Formatter.CreateReturnsElement(
                    opOwner,
                    ((WsdlParameterDocumentationAttribute)returnAttrs[0]).ParamComment
                  );
                operation.DocumentationElement.AppendChild(returnsElement);
            }

            // Get parameter information.
            ParameterInfo[] args = op.SyncMethod.GetParameters();
            for (int i = 0; i < args.Length; i++)
            {
                object[] docAttrs
                  = args[i].GetCustomAttributes(typeof(WsdlParameterDocumentationAttribute), false);
                if (docAttrs.Length != 0)
                {
                    // <param name="Int1">Text.</param>
                    XmlElement newParamElement = opOwner.CreateElement("param");
                    XmlAttribute paramName = opOwner.CreateAttribute("name");
                    paramName.Value = args[i].Name;
                    newParamElement.InnerText
                      = ((WsdlParameterDocumentationAttribute)docAttrs[0]).ParamComment;
                    newParamElement.Attributes.Append(paramName);
                    operation.DocumentationElement.AppendChild(newParamElement);
                }
            }
        }
    }
}

Comentarios

Utilice el objeto WsdlContractConversionContext para examinar y modificar elementos que serán convertidos a o desde WSDL.

Al exportar metadatos se pasa un objeto WsdlContractConversionContext a ExportContract y los métodos ExportEndpoint. Para modificar el WSDL publicado, utilice los distintos métodos y propiedades para obtener objetos de metadatos utilizados para examinar y modificar.

Al importar metadatos se pasa un objeto WsdlContractConversionContext a ImportContract y los métodos ImportEndpoint. Utilice los distintos métodos y propiedades para obtener objetos de metadatos que pueden utilizarse para examinar y modificar los metadatos importados.

Propiedades

Contract

Obtiene el ContractDescription que se exporta o importa.

WsdlPortType

Obtiene el PortType que representa el contrato.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetFaultDescription(OperationFault)

Devuelve la descripción del error para el error especificado.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetMessageDescription(OperationMessage)

Devuelve la descripción del mensaje para el mensaje especificado.

GetOperation(OperationDescription)

Devuelve la operación para la descripción de la operación especificada.

GetOperationDescription(Operation)

Devuelve la descripción de la operación asociada a la operación.

GetOperationFault(FaultDescription)

Devuelve OperationFault para el FaultDescriptionsolicitado.

GetOperationMessage(MessageDescription)

Obtiene un objeto OperationMessage para el message especificado que representa un tipo de mensaje pasado por la acción de un servicio Web XML.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a