MetadataResolver Klasse

Definition

Ruft Metadaten als ServiceEndpoint Objekte ab und importiert sie.

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

Beispiele

Das folgende Codebeispiel zeigt die Verwendung der MetadataResolver Klasse, um Metadaten als Auflistung von ServiceEndpoint Objekten zurückzugeben, die dann zum Herstellen einer Verbindung mit einer Dienstinstanz verwendet werden.

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

Das folgende Codebeispiel zeigt die Verwendung der MetadataResolver Zum Herunterladen und Zurückgeben von Metadaten als Sammlung von ServiceEndpoint Objekten mithilfe einer HTTP GET-Anforderung anstelle von 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();
    }
}

Hinweise

Verwenden Sie die MetadataResolver Klasse, um Endpunkte für einen Dienst schnell aus Metadaten zu importieren. Diese Klasse lädt Metadaten herunter und konvertiert sie in ServiceEndpoint Objekte. Informationen zum Herunterladen von Metadaten und Zum Verarbeiten dieser Informationen als Eins System.ServiceModel.Description.MetadataSetfinden Sie unter System.ServiceModel.Description.MetadataExchangeClient.

Methoden

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

Beginnt einen asynchronen Aufruf, der eine Metadatenadresse in die Objekte für die ServiceEndpoint angegebenen Verträge aufgelöst, wobei die angegebene Adresse und der asynchrone Zustand und Delegate verwendet werden.

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

Startet einen asynchronen Aufruf, der eine Metadatenadresse in die Objekte für die ServiceEndpoint angegebenen Verträge aufgelöst, wobei die angegebene Adresse, MetadataExchangeClientder asynchrone Zustand und der Delegate verwendet werden.

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

Startet einen asynchronen Aufruf, der eine Metadatenadresse in die Objekte für die ServiceEndpoint angegebenen Verträge aufgelöst, wobei die angegebene Adresse, MetadataExchangeClientMode der Wert, der asynchrone Zustand und der Delegate verwendet werden.

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

Startet einen asynchronen Aufruf, mit dem eine Metadatenadresse in die Objekte für die ServiceEndpoint angegebenen Verträge aufgelöst wird, wobei die angegebene Adresse, MetadataExchangeClientder MetadataExchangeClientModeasynchrone Zustand und der Delegat verwendet werden.

BeginResolve(Type, EndpointAddress, AsyncCallback, Object)

Startet einen asynchronen Aufruf, der eine Metadatenadresse in die ServiceEndpoint Objekte für den angegebenen Vertrag unter Verwendung der angegebenen Adresse und des asynchronen Zustands und Delegaten aufgelöst.

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

Beginnt einen asynchronen Aufruf, der eine Metadatenadresse in die ServiceEndpoint Objekte für den angegebenen Vertrag aufgelöst, wobei die angegebene Adresse, MetadataExchangeClientModeder asynchrone Zustand und der Delegat verwendet werden.

EndResolve(IAsyncResult)

Schließt einen asynchronen Aufruf ab, um Metadaten in eine Sammlung von Endpunkten aufzulösen.

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

Löst eine Metadatenadresse in die ServiceEndpoint Objekte für die angegebenen Verträge mithilfe der angegebenen Metadatenadresse und MetadataExchangeClient.

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

Löst eine Metadatenadresse in die ServiceEndpoint Objekte für die angegebenen Verträge mithilfe der angegebenen Metadatenadresse auf.

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

Löst eine Metadatenadresse in die ServiceEndpoint Objekte für die angegebenen Verträge mithilfe der angegebenen Adresse, des Übertragungsmodus und des Übertragungsclients auf.

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

Löst eine Metadatenadresse in die Objekte für die ServiceEndpoint angegebenen Verträge mithilfe des angegebenen Adress- und Übertragungsmodus auf.

Resolve(Type, EndpointAddress)

Lädt eine Metadatenadresse in eine Auflistung von ServiceEndpoint Objekten für einen bestimmten Vertrag an einer angegebenen Adresse herunter und löst sie auf.

Resolve(Type, Uri, MetadataExchangeClientMode)

Löst eine Metadatenadresse in die ServiceEndpoint Objekte für den angegebenen Vertrag mithilfe des angegebenen Adress- und Übertragungsmodus auf.

Gilt für: