Condividi tramite


MetadataResolver Classe

Definizione

Recupera e importa i metadati come oggetti ServiceEndpoint.

public ref class MetadataResolver abstract sealed
public static class MetadataResolver
type MetadataResolver = class
Public Class MetadataResolver
Ereditarietà
MetadataResolver

Esempio

Nell'esempio di codice seguente viene illustrato l'utilizzo della classe MetadataResolver per restituire i metadati come raccolta di oggetti ServiceEndpoint che verranno quindi utilizzati per la connessione a un'istanza del servizio.

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

Nell'esempio di codice seguente viene illustrato l'utilizzo di MetadataResolver per scaricare e restituire metadati come raccolta di oggetti ServiceEndpoint utilizzando una richiesta HTTP GET anziché 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();
    }
}

Commenti

Utilizzare la classe MetadataResolver per importare rapidamente endpoint per un servizio da metadati. Questa classe scarica e converte metadati in oggetti ServiceEndpoint. Per scaricare metadati ed elaborare tali informazioni come System.ServiceModel.Description.MetadataSet, vedere System.ServiceModel.Description.MetadataExchangeClient.

Metodi

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

Avvia una chiamata asincrona che risolve un indirizzo di metadati in oggetti ServiceEndpoint per i contratti specificati, utilizzando l'indirizzo, lo stato asincrono e il delegato specificati.

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

Avvia una chiamata asincrona che risolve un indirizzo di metadati in oggetti ServiceEndpoint per i contratti specificati, utilizzando l'indirizzo, l'oggetto MetadataExchangeClient, lo stato asincrono e il delegato specificati.

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

Avvia una chiamata asincrona che risolve un indirizzo di metadati in oggetti ServiceEndpoint per i contratti specificati, utilizzando l'indirizzo, il valore MetadataExchangeClientMode, lo stato asincrono e il delegato specificati.

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

Avvia una chiamata asincrona che risolve un indirizzo di metadati in oggetti ServiceEndpoint per i contratti specificati, utilizzando l'indirizzo, MetadataExchangeClient, MetadataExchangeClientMode, lo stato asincrono e il delegato specificati.

BeginResolve(Type, EndpointAddress, AsyncCallback, Object)

Avvia una chiamata asincrona che risolve un indirizzo di metadati in oggetti ServiceEndpoint per il contratto specificato, utilizzando l'indirizzo, lo stato asincrono e il delegato specificati.

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

Avvia una chiamata asincrona che risolve un indirizzo di metadati in oggetti ServiceEndpoint per il contratto specificato, utilizzando l'indirizzo, l'oggetto MetadataExchangeClientMode, lo stato asincrono e il delegato specificati.

EndResolve(IAsyncResult)

Completa una chiamata asincrona per risolvere i metadati in una raccolta di endpoint.

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

Risolve un indirizzo di metadati in oggetti ServiceEndpoint per i contratti specificati utilizzando l'indirizzo di metadati specificato.

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

Risolve un indirizzo di metadati in oggetti ServiceEndpoint per i contratti specificati utilizzando l'indirizzo di metadati e l'oggetto MetadataExchangeClient specificati.

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

Risolve un indirizzo di metadati in oggetti ServiceEndpoint per i contratti specificati utilizzando l'indirizzo e la modalità di trasferimento specificati.

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

Risolve un indirizzo di metadati in oggetti ServiceEndpoint per i contratti specificati utilizzando l'indirizzo, nonché la modalità e il client di trasferimento specificati.

Resolve(Type, EndpointAddress)

Scarica e risolve un indirizzo di metadati in una raccolta di oggetti ServiceEndpoint per un contratto specificato a un indirizzo specificato.

Resolve(Type, Uri, MetadataExchangeClientMode)

Risolve un indirizzo di metadati in oggetti ServiceEndpoint per il contratto specificato utilizzando l'indirizzo e la modalità di trasferimento specificati.

Si applica a