WsdlContractConversionContext 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
传递给自定义 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 或从 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 的 |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |