WsdlContractConversionContext クラス

定義

カスタム WSDL エクスポーターおよびカスタム WSDL インポーターに渡され、コントラクトのメタデータのエクスポートおよびインポートのプロセスをカスタマイズできるようにします。

public ref class WsdlContractConversionContext
public class WsdlContractConversionContext
type WsdlContractConversionContext = class
Public Class WsdlContractConversionContext
継承
WsdlContractConversionContext

WsdlContractConversionContext を使用して、エクスポートされるメタデータに WsdlPortType プロパティおよび Contract プロパティを使用してカスタム WSDL 注釈を追加する方法を次の例に示します。

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)

要求された OperationFaultFaultDescription を返します。

GetOperationMessage(MessageDescription)

XML Web サービスのアクションによって渡されるメッセージの種類を表す、指定した OperationMessagemessage オブジェクトを取得します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象