MetadataResolver Class
Retrieves and imports metadata as ServiceEndpoint objects.
Assembly: System.ServiceModel (in System.ServiceModel.dll)
Use the MetadataResolver class to quickly import endpoints for a service from metadata. This class downloads and converts metadata into ServiceEndpoint objects. To download metadata and process that information as a System.ServiceModel.Description.MetadataSet, see System.ServiceModel.Description.MetadataExchangeClient.
The following code example shows the use of the MetadataResolver class to return metadata as a collection of ServiceEndpoint objects that are then used to connect to a service instance.
// Get the endpoints for such a service ServiceEndpointCollection endpoints = MetadataResolver.Resolve(typeof(SampleServiceClient),metaAddress); Console.WriteLine("Trying all available WS-Transfer metadata endpoints..."); foreach (ServiceEndpoint point in endpoints) { if (point != null) { // Create a new wcfClient using retrieved endpoints. wcfClient = new SampleServiceClient(point.Binding, point.Address); Console.WriteLine( wcfClient.SampleMethod("Client used the " + point.Address.ToString() + " address.") ); wcfClient.Close(); } }
The following code example shows the use of the MetadataResolver to download and return metadata as a collection of ServiceEndpoint objects using an HTTP GET request rather than WS-Transfer.
// Get the endpoints for such a service using Http/Get request endpoints = MetadataResolver.Resolve(typeof(SampleServiceClient),httpGetMetaAddress.Uri, MetadataExchangeClientMode.HttpGet); Client.WriteParameters(endpoints); ISampleService serviceChannel; Console.WriteLine( "\r\nTrying all endpoints from HTTP/Get and with direct service channels..."); foreach (ServiceEndpoint point in endpoints) { if (point != null) { ChannelFactory<ISampleService> factory = new ChannelFactory<ISampleService>(point.Binding); factory.Endpoint.Address = point.Address; serviceChannel = factory.CreateChannel(); Console.WriteLine("Client used the " + point.Address.ToString() + " address."); Console.WriteLine( serviceChannel.SampleMethod( "Client used the " + point.Address.ToString() + " address." ) ); factory.Close(); } }
Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.