MetadataResolver Klasse

Definition

Ruft Metadaten ab und importiert diese als ServiceEndpoint-Objekte.

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

Beispiele

Das folgende Codebeispiel veranschaulicht die Verwendung der MetadataResolver-Klasse, um Metadaten als eine 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 veranschaulicht die Verwendung von MetadataResolver, um Metadaten als eine Auflistung von ServiceEndpoint-Objekten mithilfe einer HTTP GET-Anforderung anstelle von WS-Transfer herunterzuladen und zurückzugeben.

// 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 aus Metadaten schnell zu importieren. Diese Klasse lädt Metadaten herunter und konvertiert diese in ServiceEndpoint-Objekte. Weitere Informationen zum Herunterladen von Metadaten und Verarbeiten der Metadaten als System.ServiceModel.Description.MetadataSet finden Sie unter System.ServiceModel.Description.MetadataExchangeClient.

Methoden

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

Startet einen asynchronen Aufruf, der eine Metadatenadresse in die ServiceEndpoint-Objekte für die angegebenen Verträge unter Verwendung der angegebenen Adresse, des asynchronen Zustands und des Delegats auflöst.

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

Startet einen asynchronen Aufruf, der eine Metadatenadresse in die ServiceEndpoint-Objekte für die angegebenen Verträge unter Verwendung der angegebenen Adresse, MetadataExchangeClient, des asynchronen Zustands und des Delegats auflöst.

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

Startet einen asynchronen Aufruf, der eine Metadatenadresse in die ServiceEndpoint-Objekte für die angegebenen Verträge unter Verwendung der angegebenen Adresse, des MetadataExchangeClientMode-Werts, des asynchronen Zustands und des Delegats auflöst.

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

Startet einen asynchronen Aufruf, der eine Metadatenadresse in die ServiceEndpoint-Objekte für die angegebenen Verträge unter Verwendung der angegebenen Adresse, MetadataExchangeClient, MetadataExchangeClientMode, des asynchronen Zustands und des Delegats auflöst.

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, des asynchronen Zustands und des Delegats auflöst.

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

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

EndResolve(IAsyncResult)

Vervollständigt einen asynchronen Aufruf, um Metadaten in eine Auflistung von Endpunkten aufzulösen.

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

Löst eine Metadatenadresse in die ServiceEndpoint-Objekte für den angegebenen Vertrag unter Verwendung der angegebenen Metadatenadresse auf.

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

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

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

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

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

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

Resolve(Type, EndpointAddress)

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

Resolve(Type, Uri, MetadataExchangeClientMode)

Löst eine Metadatenadresse in die ServiceEndpoint-Objekte für den angegebenen Vertrag unter Verwendung der angegebenen Adresse und des Übertragungsmodus auf.

Gilt für