WsdlExporter 类

定义

将服务、协定和终结点信息转换为元数据文档。

public ref class WsdlExporter : System::ServiceModel::Description::MetadataExporter
public class WsdlExporter : System.ServiceModel.Description.MetadataExporter
type WsdlExporter = class
    inherit MetadataExporter
Public Class WsdlExporter
Inherits MetadataExporter
继承
WsdlExporter

示例

下面的代码示例演示了如何使用 ExportEndpoint 方法,从 MetadataSection 所调用的 ServiceEndpoint 对象集合中的终结点生成一组 myServiceEndpoints 对象。

using System;
using System.ServiceModel;
using System.ServiceModel.Description;

namespace WsdlExporterSample
{
    class Program
    {
        static void Main(string[] args)
        {
            WsdlExporter exporter = new WsdlExporter();
            exporter.PolicyVersion = PolicyVersion.Policy15;

            ServiceEndpoint [] myServiceEndpoints = new ServiceEndpoint[2];
            ContractDescription myDescription = new ContractDescription ("myContract");
            myServiceEndpoints[0] = new ServiceEndpoint(myDescription,new BasicHttpBinding(),new EndpointAddress("http://localhost/myservice"));
            myServiceEndpoints[1] = new ServiceEndpoint(myDescription,new BasicHttpBinding(),new EndpointAddress("http://localhost/myservice"));

            // Export all endpoints for each endpoint in collection.
            foreach (ServiceEndpoint endpoint in myServiceEndpoints)
            {
                exporter.ExportEndpoint(endpoint);
            }
            // If there are no errors, get the documents.
            MetadataSet metadataDocs = null;
            if (exporter.Errors.Count != 0)
            {
                metadataDocs = exporter.GetGeneratedMetadata();
            }
        }
    }
}
Imports System.ServiceModel
Imports System.ServiceModel.Description

Module Module1

    Sub Main()
        Dim exporter As New WsdlExporter()
        exporter.PolicyVersion = PolicyVersion.Policy15

        Dim myServiceEndpoints() As ServiceEndpoint = New ServiceEndpoint(1) {}
        Dim myDescription As New ContractDescription("myContract")
        myServiceEndpoints(0) = New ServiceEndpoint(myDescription, New BasicHttpBinding(), New EndpointAddress("http://localhost/myservice"))
        myServiceEndpoints(1) = New ServiceEndpoint(myDescription, New BasicHttpBinding(), New EndpointAddress("http://localhost/myservice"))

        'Export all endpoints for each endpoint in collection.
        For Each endpoint As ServiceEndpoint In myServiceEndpoints
            exporter.ExportEndpoint(endpoint)
        Next

        'If there are no errors, get the documents.
        Dim metadataDocs As MetadataSet
        metadataDocs = Nothing

        If (exporter.Errors.Count = 0) Then
            metadataDocs = exporter.GetGeneratedMetadata()
        End If
    End Sub

End Module

注解

使用 WsdlExporter 类可以将 ContractDescriptionServiceEndpoint 对象转换为由 MetadataSection 对象表示的元数据。

WsdlExporter 可分三步操作。

  1. 调用 ExportContractExportEndpointExportEndpoints 方法,传递相应的参数。

  2. 通过检查基本 Errors 属性来确定是否发生导出错误。

  3. 如果无错误,则可使用 GetGeneratedMetadata 来获取 MetadataSection 对象的集合,或通过使用 GeneratedWsdlDocumentsGeneratedXmlSchemas 属性来获取更多元数据的特定版本。

您可通过实现 IWsdlExportExtension 接口,来支持导出自定义 WSDL 扩展,同时还可通过实现 IPolicyExportExtension 接口,来支持导出自定义策略断言。 有关更多信息,请参见这些接口的文档。

备注

只可用于从包含公共运行库 (CLR) 类型信息的 实例导出元数据,例如通过使用 方法创建的 实例,或为 实例创建的作为其 的一部分 实例。 对于从服务元数据导入的或构建时没有类型信息的WsdlExporter 实例,您不能使用 ContractDescription 从此类实例导出元数据。

构造函数

WsdlExporter()

初始化 WsdlExporter 类的新实例。

属性

Errors

获取元数据导出过程中发生的错误的集合。

(继承自 MetadataExporter)
GeneratedWsdlDocuments

调用一个导出方法后,获取 ServiceDescription 对象的集合。

GeneratedXmlSchemas

调用一个导出方法后,获取一组 XmlSchema 对象。

PolicyVersion

指定正在使用的 WS-Policy 规范的版本。

(继承自 MetadataExporter)
State

获取在元数据的导出中使用的对象的词典。

(继承自 MetadataExporter)

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
ExportContract(ContractDescription)

导出仅描述指定协定说明中的协定信息的元数据。

ExportEndpoint(ServiceEndpoint)

生成有关指定终结点的元数据。

ExportEndpoints(IEnumerable<ServiceEndpoint>, XmlQualifiedName)

从指定服务生成终结点组的元数据。

ExportPolicy(ServiceEndpoint)

将策略断言转换为 PolicyConversionContext 对象。

(继承自 MetadataExporter)
GetGeneratedMetadata()

返回所生成的 MetadataSection 对象的可枚举集合。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于