Edit

Share via


MetadataResolver Class

Definition

Retrieves and imports metadata as ServiceEndpoint objects.

public ref class MetadataResolver abstract sealed
public static class MetadataResolver
type MetadataResolver = class
Public Class MetadataResolver
Inheritance
MetadataResolver

Examples

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();
    }
}

Remarks

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.

Methods

BeginResolve(IEnumerable<ContractDescription>, EndpointAddress, AsyncCallback, Object)

Begins an asynchronous call that resolves a metadata address into the ServiceEndpoint objects for the specified contracts, using the specified address and asynchronous state and delegate.

BeginResolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient, AsyncCallback, Object)

Begins an asynchronous call that resolves a metadata address into the ServiceEndpoint objects for the specified contracts, using the specified address, MetadataExchangeClient, asynchronous state and delegate.

BeginResolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, AsyncCallback, Object)

Begins an asynchronous call that resolves a metadata address into the ServiceEndpoint objects for the specified contracts, using the specified address, MetadataExchangeClientMode value, asynchronous state and delegate.

BeginResolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient, AsyncCallback, Object)

Begins an asynchronous call that resolves a metadata address into the ServiceEndpoint objects for the specified contracts, using the specified address, MetadataExchangeClient, MetadataExchangeClientMode, asynchronous state, and delegate.

BeginResolve(Type, EndpointAddress, AsyncCallback, Object)

Begins an asynchronous call that resolves a metadata address into the ServiceEndpoint objects for the specified contract using the specified address and asynchronous state and delegate.

BeginResolve(Type, Uri, MetadataExchangeClientMode, AsyncCallback, Object)

Begins an asynchronous call that resolves a metadata address into the ServiceEndpoint objects for the specified contract, using the specified address, MetadataExchangeClientMode, asynchronous state and delegate.

EndResolve(IAsyncResult)

Completes an asynchronous call to resolve metadata into a collection of endpoints.

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

Resolves a metadata address into the ServiceEndpoint objects for the specified contracts using the specified metadata address and MetadataExchangeClient.

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

Resolves a metadata address into the ServiceEndpoint objects for the specified contracts using the specified metadata address.

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient)

Resolves a metadata address into the ServiceEndpoint objects for the specified contracts using the specified address, transfer mode, and transfer client.

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

Resolves a metadata address into the ServiceEndpoint objects for the specified contracts using the specified address and transfer mode.

Resolve(Type, EndpointAddress)

Downloads and resolves a metadata address into a collection of ServiceEndpoint objects for a specified contract at a specified address.

Resolve(Type, Uri, MetadataExchangeClientMode)

Resolves a metadata address into the ServiceEndpoint objects for the specified contract using the specified address and transfer mode.

Applies to