WsdlContractConversionContext Klasse

Definition

Dies wird an benutzerdefinierte WSDL-Export- und Importprogramme übergeben, um die Anpassung der Metadatenexport- und Importprozesse für einen Vertrag zu ermöglichen.

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

Beispiele

Im folgenden Codebeispiel wird die Verwendung des WsdlContractConversionContext zum Hinzufügen benutzerdefinierter WSDL-Anmerkungen zu exportierten Metadaten unter Verwendung der WsdlPortType und Contract-Eigenschaften gezeigt.

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

Hinweise

Verwenden Sie das WsdlContractConversionContext-Objekt zum Überprüfen und Ändern von Elementen, die in oder von WSDL konvertiert werden sollen.

Beim Exportieren von Metadaten wird ein WsdlContractConversionContext-Objekt an die ExportContract-Methode und die ExportEndpoint-Methode übergeben. Verwenden Sie die verschiedenen Methoden und Eigenschaften, um Metadatenobjekte zu erhalten, die Sie zum Überprüfen und Ändern des veröffentlichten WSDL verwenden können.

Beim Importieren von Metadaten wird ein WsdlContractConversionContext-Objekt an die ImportContract-Methode und die ImportEndpoint-Methode übergeben. Verwenden Sie die verschiedenen Methoden und Eigenschaften, um Metadatenobjekte zu erhalten, die Sie zum Überprüfen und Ändern der importierten Metadaten verwenden können.

Eigenschaften

Contract

Ruft den ContractDescription ab, der exportiert oder importiert wird.

WsdlPortType

Ruft den PortType ab, der den Vertrag darstellt.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetFaultDescription(OperationFault)

Gibt die Fehlerbeschreibung für den angegebenen Fehler zurück.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetMessageDescription(OperationMessage)

Gibt die Nachrichtenbeschreibung für die angegebene Nachricht zurück.

GetOperation(OperationDescription)

Gibt den Vorgang für die angegebene Vorgangsbeschreibung zurück.

GetOperationDescription(Operation)

Gibt die dem Vorgang zugeordnete Vorgangsbeschreibung zurück.

GetOperationFault(FaultDescription)

Gibt den OperationFault für die angeforderte FaultDescription zurück.

GetOperationMessage(MessageDescription)

Ruft ein OperationMessage-Objekt für die angegebene message-Nachricht ab, das einen Nachrichtentyp darstellt, der von der Aktion eines XML-Webdiensts übergeben wurde.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: