This documentation is archived and is not being maintained.

WsdlExporter Class

Converts service, contract, and endpoint information into metadata documents.


Namespace:  System.ServiceModel.Description
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public class WsdlExporter : MetadataExporter

The WsdlExporter type exposes the following members.

Public methodWsdlExporterInitializes a new instance of the WsdlExporter class.

Public propertyErrorsGets a collection of errors that occurred during metadata export. (Inherited from MetadataExporter.)
Public propertyGeneratedWsdlDocumentsGets a collection of ServiceDescription objects after calling one of the export methods.
Public propertyGeneratedXmlSchemasGets a set of XmlSchema objects after calling one of the export methods.
Public propertyPolicyVersionSpecifies the version of WS-Policy specification being used. (Inherited from MetadataExporter.)
Public propertyStateGets a dictionary of objects used in the export of metadata. (Inherited from MetadataExporter.)

Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Public methodExportContractExports metadata that describes only the contract information from the specified contract description. (Overrides MetadataExporter.ExportContract(ContractDescription).)
Public methodExportEndpointGenerates metadata about the specified endpoint. (Overrides MetadataExporter.ExportEndpoint(ServiceEndpoint).)
Public methodExportEndpointsGenerates metadata about a group of endpoints from a specified service.
Protected methodExportPolicyConverts policy assertions into a System.ServiceModel.Description.PolicyConversionContext object. (Inherited from MetadataExporter.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetGeneratedMetadataReturns an enumerable collection of generated MetadataSection objects. (Overrides MetadataExporter.GetGeneratedMetadata().)
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)

Use the WsdlExporter class to transform ContractDescription or ServiceEndpoint objects into metadata represented by MetadataSection objects.

The WsdlExporter is used in a three-step process.

  1. Call the ExportContract, ExportEndpoint, or ExportEndpoints method, passing the appropriate parameters.

  2. Determine whether there are any export errors by checking the base Errors property.

  3. If there are no errors, use the GetGeneratedMetadata to get a collection of MetadataSection objects or get more specific versions of the metadata using the GeneratedWsdlDocuments or GeneratedXmlSchemas properties.

You can support exporting custom WSDL extensions by implementing the IWsdlExportExtension interface and custom policy assertions by implementing the IPolicyExportExtension interface. For details, see the documentation for those interfaces.


The WsdlExporter can only be used to export metadata from ContractDescription instances that contain Common Language Runtime (CLR) type information, such as a ContractDescription instance created using the ContractDescription.GetContract method or created as part of the ServiceDescription for a ServiceHost instance. You cannot use the WsdlExporter to export metadata from ContractDescription instances imported from service metadata or constructed without type information.

The following code example shows how to use the ExportEndpoint method to generate a set of MetadataSection objects from the endpoints in a collection of ServiceEndpoint objects called 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)
            // If there are no errors, get the documents.
            MetadataSet metadataDocs = null;
            if (exporter.Errors.Count != 0)
                metadataDocs = exporter.GetGeneratedMetadata();

.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.