Sdílet prostřednictvím


MetadataResolver Třída

Definice

Načte a importuje metadata jako ServiceEndpoint objekty.

public ref class MetadataResolver abstract sealed
public static class MetadataResolver
type MetadataResolver = class
Public Class MetadataResolver
Dědičnost
MetadataResolver

Příklady

Následující příklad kódu ukazuje použití MetadataResolver třídy k vrácení metadat jako kolekce ServiceEndpoint objektů, které se pak používají pro připojení k instanci služby.

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

Následující příklad kódu ukazuje použití MetadataResolver ke stažení a vrácení metadat jako kolekce ServiceEndpoint objektů pomocí požadavku HTTP GET místo 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();
    }
}

Poznámky

MetadataResolver Pomocí třídy můžete rychle importovat koncové body pro službu z metadat. Tato třída stahuje a převádí metadata na ServiceEndpoint objekty. Pokud chcete stáhnout metadata a zpracovat je jako , podívejte System.ServiceModel.Description.MetadataExchangeClientse na System.ServiceModel.Description.MetadataSet.

Metody

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

Zahájí asynchronní volání, které přeloží adresu metadat na ServiceEndpoint objekty pro zadané kontrakty pomocí zadané adresy a asynchronního stavu a delegáta.

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

Zahájí asynchronní volání, které přeloží adresu metadat do ServiceEndpoint objektů pro zadané kontrakty pomocí zadané adresy , MetadataExchangeClientasynchronního stavu a delegáta.

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

Zahájí asynchronní volání, které přeloží adresu metadat na ServiceEndpoint objekty pro zadané kontrakty pomocí zadané adresy, MetadataExchangeClientMode hodnoty, asynchronního stavu a delegáta.

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

Zahájí asynchronní volání, které přeloží adresu metadat na ServiceEndpoint objekty pro zadané kontrakty pomocí zadané adresy , MetadataExchangeClientMetadataExchangeClientMode, asynchronního stavu a delegáta.

BeginResolve(Type, EndpointAddress, AsyncCallback, Object)

Zahájí asynchronní volání, které přeloží adresu metadat do ServiceEndpoint objektů pro zadaný kontrakt pomocí zadané adresy a asynchronního stavu a delegáta.

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

Zahájí asynchronní volání, které přeloží adresu metadat do ServiceEndpoint objektů pro zadaný kontrakt pomocí zadané adresy , MetadataExchangeClientModeasynchronního stavu a delegáta.

EndResolve(IAsyncResult)

Dokončí asynchronní volání pro překlad metadat do kolekce koncových bodů.

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

Přeloží adresu metadat na ServiceEndpoint objekty pro zadané kontrakty pomocí zadané adresy metadat.

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

Přeloží adresu metadat na ServiceEndpoint objekty pro zadané kontrakty pomocí zadané adresy metadat a MetadataExchangeClient.

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

Přeloží adresu metadat na ServiceEndpoint objekty pro zadané kontrakty pomocí zadané adresy a režimu přenosu.

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

Přeloží adresu metadat na ServiceEndpoint objekty pro zadané kontrakty pomocí zadané adresy, režimu přenosu a klienta přenosu.

Resolve(Type, EndpointAddress)

Stáhne a přeloží adresu metadat do kolekce ServiceEndpoint objektů pro zadaný kontrakt na zadané adrese.

Resolve(Type, Uri, MetadataExchangeClientMode)

Přeloží adresu metadat do ServiceEndpoint objektů pro zadaný kontrakt pomocí zadané adresy a režimu přenosu.

Platí pro