Поделиться через


WsdlContractConversionContext Класс

Определение

Передается пользовательским средствам импорта и экспорта WSDL, чтобы обеспечить настройку процессов экспорта и импорта метаданных для контракта.

public ref class WsdlContractConversionContext
public class WsdlContractConversionContext
type WsdlContractConversionContext = class
Public Class WsdlContractConversionContext
Наследование
WsdlContractConversionContext

Примеры

В следующем примере кода показано использование объекта WsdlContractConversionContext для добавления пользовательских примечаний WSDL к экспортируемым метаданным с использованием свойства WsdlPortType и свойства 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);
                }
            }
        }
    }
}

Комментарии

Используйте объект WsdlContractConversionContext для проверки и изменения элементов, преобразуемых в формат WSDL или из него.

При экспорте метаданных объект WsdlContractConversionContext передается методу ExportContract и методуExportEndpoint. Используйте различные методы и свойства, чтобы получить объекты метаданных, которые можно использовать для проверки и внесения изменений при публикации WSDL.

При импорте метаданных объект WsdlContractConversionContext передается методу ImportContract и методу ImportEndpoint. Используйте различные методы и свойства, чтобы получить объекты метаданных, которые можно использовать для проверки и изменения импортируемых метаданных.

Свойства

Contract

Возвращает экспортируемый или импортируемый объект ContractDescription.

WsdlPortType

Возвращает объект PortType, предоставляющий контракт.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetFaultDescription(OperationFault)

Возвращает описание ошибки для указанной ошибки.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetMessageDescription(OperationMessage)

Возвращает описание сообщения для указанного сообщения.

GetOperation(OperationDescription)

Возвращает операцию для указанного описания операции.

GetOperationDescription(Operation)

Возвращает описание операции, связанное с операцией.

GetOperationFault(FaultDescription)

Возвращает объект OperationFault для запрошенного FaultDescription.

GetOperationMessage(MessageDescription)

Возвращает объект OperationMessage для указанного сообщения message, представляющий тип сообщения, переданного действием веб-службы XML.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к