Partager via


WsdlContractConversionContext Classe

Définition

Passé aux exportateurs et importateurs WSDL personnalisés pour activer la personnalisation des processus d'exportation et d'importation de métadonnées pour un contrat.

public ref class WsdlContractConversionContext
public class WsdlContractConversionContext
type WsdlContractConversionContext = class
Public Class WsdlContractConversionContext
Héritage
WsdlContractConversionContext

Exemples

L'exemple de code suivant montre l'utilisation du WsdlContractConversionContext pour ajouter des annotations WSDL personnalisées aux métadonnées exportées à l'aide des propriétés WsdlPortType et 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);
                }
            }
        }
    }
}

Remarques

Utilisez l'objet WsdlContractConversionContext pour examiner et modifier des éléments qui doivent être convertis vers ou à partir de WSDL.

Lors de l'exportation de métadonnées, un objet WsdlContractConversionContext est passé aux méthodes ExportContract et ExportEndpoint. Utilisez les différentes méthodes et propriétés pour obtenir des objets de métadonnées qui permettent d'examiner et modifier le WSDL publié.

Lors de l'importation de métadonnées, un objet WsdlContractConversionContext est passé aux méthodes ImportContract et ImportEndpoint. Utilisez les différentes méthodes et propriétés pour obtenir des objets de métadonnées qui permettent d'examiner et modifier les métadonnées importées.

Propriétés

Contract

Obtient le ContractDescription en cours d'exportation ou d'importation.

WsdlPortType

Obtient le PortType qui représente le contrat.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetFaultDescription(OperationFault)

Retourne la description de l'erreur pour l'erreur spécifiée.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetMessageDescription(OperationMessage)

Retourne la description de message pour le message spécifié.

GetOperation(OperationDescription)

Retourne l'opération pour la description de l'opération spécifiée.

GetOperationDescription(Operation)

Retourne la description d'opérations associée à l'opération.

GetOperationFault(FaultDescription)

Retourne l'OperationFault pour la FaultDescription demandée.

GetOperationMessage(MessageDescription)

Obtient un objet OperationMessage pour le message spécifié qui représente un type de message passé par l’action d’un service web XML.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à