WsdlContractConversionContext Klass

Definition

Skickas till anpassade WSDL-exportörer och -importörer för att möjliggöra anpassning av metadataexport- och importprocesserna för ett kontrakt.

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

Exempel

I följande kodexempel visas hur du lägger till anpassade WSDL-anteckningar i exporterade metadata med hjälp WsdlContractConversionContext av WsdlPortType egenskaperna ochContract.

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);
                }
            }
        }
    }
}

Kommentarer

Använd objektet WsdlContractConversionContext för att undersöka och ändra objekt som ska konverteras till eller från WSDL.

När du exporterar metadata skickas ett WsdlContractConversionContext objekt till ExportContract metoderna och ExportEndpoint . Använd de olika metoderna och egenskaperna för att hämta metadataobjekt som du kan använda för att undersöka och ändra för att ändra den publicerade WSDL:n.

När du importerar metadata skickas ett WsdlContractConversionContext objekt till ImportContract metoderna och ImportEndpoint . Använd de olika metoderna och egenskaperna för att hämta metadataobjekt som du kan använda för att undersöka och ändra importerade metadata.

Egenskaper

Name Description
Contract

Hämtar den ContractDescription som exporteras eller importeras.

WsdlPortType

Hämtar det PortType som representerar kontraktet.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetFaultDescription(OperationFault)

Returnerar felbeskrivningen för det angivna felet.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetMessageDescription(OperationMessage)

Returnerar meddelandebeskrivningen för det angivna meddelandet.

GetOperation(OperationDescription)

Returnerar åtgärden för den angivna åtgärdsbeskrivningen.

GetOperationDescription(Operation)

Returnerar åtgärdsbeskrivningen som är associerad med åtgärden.

GetOperationFault(FaultDescription)

OperationFault Returnerar för den begärda FaultDescription.

GetOperationMessage(MessageDescription)

Hämtar ett OperationMessage objekt för den angivna message som representerar en meddelandetyp som skickas av åtgärden för en XML-webbtjänst.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för