MetadataExporter.State Property


Gets a dictionary of objects used in the export of metadata.

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

public Dictionary<object, object> State { get; }

Property Value

Type: System.Collections.Generic.Dictionary<Object, Object>

A dictionary of objects used by the importer to export contracts and endpoints.

Use the State property to pass a MetadataExporter state data required to successfully export endpoints or contracts.

The following code example is an IWsdlExportExtension.ExportContract method that demonstrates how the State property of the derived class WsdlImporter is used to attach a custom System.Runtime.Serialization.XsdDataContractExporter that modifies the export of data contracts in the endpoint.

  public void ExportContract(WsdlExporter exporter, WsdlContractConversionContext context)
// Add a custom DCAnnotationSurrogate to write data contract comments into the XSD.
object dataContractExporter;
XsdDataContractExporter xsdDCExporter;
if (!exporter.State.TryGetValue(typeof(XsdDataContractExporter), out dataContractExporter))
  xsdDCExporter = new XsdDataContractExporter(exporter.GeneratedXmlSchemas);
  exporter.State.Add(typeof(XsdDataContractExporter), xsdDCExporter);
  xsdDCExporter = (XsdDataContractExporter)dataContractExporter;
if (xsdDCExporter.Options == null)
  xsdDCExporter.Options = new ExportOptions();
xsdDCExporter.Options.DataContractSurrogate = new DCAnnotationSurrogate();

.NET Framework
Available since 3.0
Return to top