MetadataResolver Osztály

Definíció

Metaadatokat kér le és importál objektumként ServiceEndpoint .

public ref class MetadataResolver abstract sealed
public static class MetadataResolver
type MetadataResolver = class
Public Class MetadataResolver
Öröklődés
MetadataResolver

Példák

Az alábbi példakód azt mutatja be, hogy az MetadataResolver osztály metaadatokat ad vissza olyan objektumok gyűjteményeként ServiceEndpoint , amelyeket aztán egy szolgáltatáspéldányhoz való csatlakozáshoz használnak.

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

Az alábbi példakód azt mutatja be, hogy a MetadataResolver metaadatok letöltésére és visszaadására használható objektumgyűjteményként ServiceEndpoint , a WS-Transfer helyett HTTP GET kéréssel.

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

Megjegyzések

MetadataResolver Az osztály használatával gyorsan importálhat végpontokat egy szolgáltatáshoz metaadatokból. Ez az osztály letölti és objektummá alakítja a metaadatokat ServiceEndpoint . A metaadatok letöltéséhez és az információk feldolgozásához tekintse meg a következőtSystem.ServiceModel.Description.MetadataSetSystem.ServiceModel.Description.MetadataExchangeClient:

Metódusok

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

Elindít egy aszinkron hívást, amely felold egy metaadat-címet a ServiceEndpoint megadott szerződések objektumaiba a megadott cím és aszinkron állapot és delegálás használatával.

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

Elindít egy aszinkron hívást, amely felold egy metaadat-címet a ServiceEndpoint megadott szerződések objektumaiba a megadott cím, MetadataExchangeClientaszinkron állapot és delegálás használatával.

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

Elindít egy aszinkron hívást, amely felold egy metaadat-címet a ServiceEndpoint megadott szerződések objektumaiba a megadott cím, érték, MetadataExchangeClientMode aszinkron állapot és delegálás használatával.

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

Elindít egy aszinkron hívást, amely felold egy metaadat-címet a ServiceEndpoint megadott szerződések objektumaiba a megadott cím, MetadataExchangeClient, MetadataExchangeClientModeaszinkron állapot és delegálás használatával.

BeginResolve(Type, EndpointAddress, AsyncCallback, Object)

Elindít egy aszinkron hívást, amely felold egy metaadat-címet a ServiceEndpoint megadott szerződés objektumaiba a megadott cím és aszinkron állapot és delegálás használatával.

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

Elindít egy aszinkron hívást, amely felold egy metaadat-címet a ServiceEndpoint megadott szerződés objektumaiba a megadott cím, MetadataExchangeClientModeaszinkron állapot és delegálás használatával.

EndResolve(IAsyncResult)

A metaadatok végpontok gyűjteményébe való feloldására irányuló aszinkron hívást hajt végre.

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

A megadott metaadat-cím és ServiceEndpointa megadott metaadat-cím használatával feloldja a megadott szerződések metaadat-címét MetadataExchangeClient a megadott szerződések objektumai között.

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

A megadott metaadat-cím használatával feloldja a ServiceEndpoint metaadat-címeket a megadott szerződések objektumai között.

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

A megadott cím, átviteli mód és átadási ügyfél használatával feloldja a ServiceEndpoint metaadat-címeket a megadott szerződések objektumaiba.

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

A megadott cím- és átviteli móddal feloldja a ServiceEndpoint metaadat-címeket a megadott szerződések objektumaiba.

Resolve(Type, EndpointAddress)

Letölti és feloldja a metaadat-címeket egy adott szerződés objektumgyűjteményében ServiceEndpoint egy megadott címen.

Resolve(Type, Uri, MetadataExchangeClientMode)

A megadott cím és átviteli mód használatával feloldja a ServiceEndpoint metaadat-címeket a megadott szerződés objektumaiba.

A következőre érvényes: