Udostępnij za pośrednictwem


WsdlContractConversionContext Klasa

Definicja

Przekazane do niestandardowych eksporterów I importerów WSDL w celu umożliwienia dostosowywania procesów eksportowania i importowania metadanych dla kontraktu.

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

Przykłady

Poniższy przykład kodu przedstawia użycie WsdlContractConversionContext funkcji , aby dodać niestandardowe adnotacje WSDL do wyeksportowanych metadanych przy użyciu WsdlPortType właściwości i 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);
                }
            }
        }
    }
}

Uwagi

Użyj obiektu, WsdlContractConversionContext aby zbadać i zmodyfikować elementy, które mają być konwertowane na lub z WSDL.

Podczas eksportowania metadanych WsdlContractConversionContext obiekt jest przekazywany do ExportContract metod i ExportEndpoint . Użyj różnych metod i właściwości, aby uzyskać obiekty metadanych, których można użyć do zbadania i zmodyfikowania w celu zmiany opublikowanego WSDL.

Podczas importowania metadanych WsdlContractConversionContext obiekt jest przekazywany do ImportContract metod i ImportEndpoint . Użyj różnych metod i właściwości, aby uzyskać obiekty metadanych, których można użyć do zbadania i zmodyfikowania zaimportowanych metadanych.

Właściwości

Contract

ContractDescription Pobiera eksportowane lub importowane.

WsdlPortType

Pobiera element PortType reprezentujący kontrakt.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetFaultDescription(OperationFault)

Zwraca opis błędu dla określonej błędu.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetMessageDescription(OperationMessage)

Zwraca opis komunikatu dla określonego komunikatu.

GetOperation(OperationDescription)

Zwraca operację dla określonego opisu operacji.

GetOperationDescription(Operation)

Zwraca opis operacji skojarzony z operacją.

GetOperationFault(FaultDescription)

Zwraca wartość OperationFault dla żądanego FaultDescription.

GetOperationMessage(MessageDescription)

OperationMessage Pobiera obiekt dla określonegomessage, który reprezentuje typ komunikatu przekazywany przez akcję usługi sieci Web XML.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy