Condividi tramite


WsdlContractConversionContext Classe

Definizione

Classe passata a utilità di esportazione e importazione WSDL personalizzate per abilitare la personalizzazione dei processi di esportazione e di importazione dei metadati per un contratto.

public ref class WsdlContractConversionContext
public class WsdlContractConversionContext
type WsdlContractConversionContext = class
Public Class WsdlContractConversionContext
Ereditarietà
WsdlContractConversionContext

Esempio

Nell'esempio di codice seguente viene illustrato l'utilizzo della classe WsdlContractConversionContext per aggiungere annotazioni WSDL personalizzate ai metadati esportati utilizzando le proprietà WsdlPortType e 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);
                }
            }
        }
    }
}

Commenti

Utilizzare l'oggetto WsdlContractConversionContext per esaminare e modificare gli elementi da convertire a o da WSDL.

Durante l'esportazione di metadati, un oggetto WsdlContractConversionContext viene passato ai metodi ExportContract e ExportEndpoint. Utilizzare i metodi e le proprietà per ottenere oggetti di metadati da utilizzare per esaminare e modificare il WSDL pubblicato.

Durante l'importazione di metadati, un oggetto WsdlContractConversionContext viene passato ai metodi ImportContract e ImportEndpoint. Utilizzare i metodi e le proprietà per ottenere oggetti di metadati da utilizzare per esaminare e modificare i metadati importati.

Proprietà

Contract

Ottiene la classe ContractDescription esportata o importata.

WsdlPortType

Ottiene la classe PortType che rappresenta il contratto.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetFaultDescription(OperationFault)

Restituisce la descrizione dell'errore specificato.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetMessageDescription(OperationMessage)

Restituisce la descrizione del messaggio specificato.

GetOperation(OperationDescription)

Restituisce l'operazione per la descrizione dell'operazione specificata.

GetOperationDescription(Operation)

Restituisce la descrizione dell'operazione associata all'operazione.

GetOperationFault(FaultDescription)

Restituisce l'oggetto della classe OperationFault relativo all'oggetto FaultDescription richiesto.

GetOperationMessage(MessageDescription)

Ottiene un oggetto OperationMessage per l'oggetto message specificato che rappresenta un tipo di messaggio passato dall'azione di un servizio Web XML.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a