MetadataResolver.Resolve Metod

Definition

Laddar ned och löser en metadataadress till objekten för den ServiceEndpoint tjänsten.

Överlagringar

Name Description
Resolve(IEnumerable<ContractDescription>, EndpointAddress)

Löser en metadataadress till objekten ServiceEndpoint för de angivna kontrakten med den angivna metadataadressen.

Resolve(Type, EndpointAddress)

Laddar ned och löser en metadataadress till en samling ServiceEndpoint objekt för ett angivet kontrakt på en angiven adress.

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

Löser en metadataadress till objekten ServiceEndpoint för de angivna kontrakten med den angivna metadataadressen och MetadataExchangeClient.

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

Löser en metadataadress till objekten ServiceEndpoint för de angivna kontrakten med den angivna adressen och överföringsläget.

Resolve(Type, Uri, MetadataExchangeClientMode)

Löser en metadataadress till objekten ServiceEndpoint för det angivna kontraktet med den angivna adressen och överföringsläget.

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

Löser en metadataadress till objekten ServiceEndpoint för de angivna kontrakten med den angivna adressen, överföringsläget och överföringsklienten.

Kommentarer

Om du vill ladda ned metadata men inte matcha informationen till ServiceEndpoint objekt använder du den System.ServiceModel.Description.MetadataExchangeClient direkt.

För alla synkrona och asynkrona Resolve metoder returneras en tom samling om inga slutpunkter importerades eller om inga slutpunkter matchade kontraktet. Om en tom samling returneras skrivs en varningsspårning.

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

Löser en metadataadress till objekten ServiceEndpoint för de angivna kontrakten med den angivna metadataadressen.

public:
 static System::ServiceModel::Description::ServiceEndpointCollection ^ Resolve(System::Collections::Generic::IEnumerable<System::ServiceModel::Description::ContractDescription ^> ^ contracts, System::ServiceModel::EndpointAddress ^ address);
public static System.ServiceModel.Description.ServiceEndpointCollection Resolve(System.Collections.Generic.IEnumerable<System.ServiceModel.Description.ContractDescription> contracts, System.ServiceModel.EndpointAddress address);
static member Resolve : seq<System.ServiceModel.Description.ContractDescription> * System.ServiceModel.EndpointAddress -> System.ServiceModel.Description.ServiceEndpointCollection
Public Shared Function Resolve (contracts As IEnumerable(Of ContractDescription), address As EndpointAddress) As ServiceEndpointCollection

Parametrar

contracts
IEnumerable<ContractDescription>

Kontrakten för vilka metadata ska laddas ned och matchas.

address
EndpointAddress

Metadataadressen.

Returer

En samling ServiceEndpoint objekt för det angivna kontraktet.

Undantag

Adress- eller kontraktsamlingen är null.

contracts är tom, minst en medlem i contracts är null eller contracts innehåller fler än ett kontrakt med samma namn och namnområde.

Kommentarer

Standardinställningarna på System.ServiceModel.Description.MetadataExchangeClient används för att hämta metadata och standardvärdet System.ServiceModel.Description.MetadataExchangeClientMode är MetadataExchangeClientMode.MetadataExchange.

Om du vill ladda ned metadata men inte matcha informationen till ServiceEndpoint objekt använder du den System.ServiceModel.Description.MetadataExchangeClient direkt.

Note

En tom samling returneras om inga slutpunkter importerades eller om inga slutpunkter matchade kontraktet. Om en tom samling returneras skrivs en varningsspårning.

Gäller för

Resolve(Type, EndpointAddress)

Laddar ned och löser en metadataadress till en samling ServiceEndpoint objekt för ett angivet kontrakt på en angiven adress.

public:
 static System::ServiceModel::Description::ServiceEndpointCollection ^ Resolve(Type ^ contract, System::ServiceModel::EndpointAddress ^ address);
public static System.ServiceModel.Description.ServiceEndpointCollection Resolve(Type contract, System.ServiceModel.EndpointAddress address);
static member Resolve : Type * System.ServiceModel.EndpointAddress -> System.ServiceModel.Description.ServiceEndpointCollection
Public Shared Function Resolve (contract As Type, address As EndpointAddress) As ServiceEndpointCollection

Parametrar

contract
Type

Kontrakten för vilka metadata ska laddas ned och matchas.

address
EndpointAddress

Metadataadressen.

Returer

En samling ServiceEndpoint objekt för det angivna kontraktet.

Undantag

Adressen eller kontraktet är null.

Exempel

I följande kodexempel visas hur klassen används MetadataResolver för att returnera metadata som en samling ServiceEndpoint objekt som sedan används för att ansluta till en tjänstinstans.

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

Kommentarer

Resolve Använd metoden för att ange kontraktet och metadataadressen som ska användas vid nedladdning och matchning av metadata.

Standardinställningarna på System.ServiceModel.Description.MetadataExchangeClient används för att hämta metadata och standardvärdet System.ServiceModel.Description.MetadataExchangeClientMode är MetadataExchangeClientMode.MetadataExchange.

Om du vill ladda ned metadata men inte matcha informationen till ServiceEndpoint objekt använder du den System.ServiceModel.Description.MetadataExchangeClient direkt.

Note

En tom samling returneras om inga slutpunkter importerades eller om inga slutpunkter matchade kontraktet. Om en tom samling returneras skrivs en varningsspårning.

Den här metoden kräver att du anger en kontraktstyp. Du kan ange kontraktet genom att deklarera tjänstgränssnittet i klientkoden eller genom att använda en WCF-klient som genereras av Svcutil.exe. Om gränssnittet ändras (till exempel genom att lägga till en ny åtgärd) måste du uppdatera gränssnittet i klientkoden eller generera en ny WCF-klient. Om du inte gör det utlöses ett undantag. Du har till exempel en tjänst som implementerar ett tjänstkontrakt med namnet ICalculator som definierar Add(), Sub(), Mult() och Div(). Du skapar ett klientprogram och genererar WCF-klienten. Sedan lägger du till en metod i ICalculator med namnet Echo(). Om du sedan skriver ett program som anropar Resolve(Type, EndpointAddress) utan att generera en ny WCF-klient får du följande undantag.

Unhandled Exception: System.ServiceModel.Description.WsdlImporter+WsdlImportException: Cannot locate operation Echo in Contract ICalculator.

Gäller för

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

Löser en metadataadress till objekten ServiceEndpoint för de angivna kontrakten med den angivna metadataadressen och MetadataExchangeClient.

public:
 static System::ServiceModel::Description::ServiceEndpointCollection ^ Resolve(System::Collections::Generic::IEnumerable<System::ServiceModel::Description::ContractDescription ^> ^ contracts, System::ServiceModel::EndpointAddress ^ address, System::ServiceModel::Description::MetadataExchangeClient ^ client);
public static System.ServiceModel.Description.ServiceEndpointCollection Resolve(System.Collections.Generic.IEnumerable<System.ServiceModel.Description.ContractDescription> contracts, System.ServiceModel.EndpointAddress address, System.ServiceModel.Description.MetadataExchangeClient client);
static member Resolve : seq<System.ServiceModel.Description.ContractDescription> * System.ServiceModel.EndpointAddress * System.ServiceModel.Description.MetadataExchangeClient -> System.ServiceModel.Description.ServiceEndpointCollection
Public Shared Function Resolve (contracts As IEnumerable(Of ContractDescription), address As EndpointAddress, client As MetadataExchangeClient) As ServiceEndpointCollection

Parametrar

contracts
IEnumerable<ContractDescription>

Kontrakten för vilka metadata ska laddas ned och matchas.

address
EndpointAddress

Metadataadressen.

client
MetadataExchangeClient

Används MetadataExchangeClient för att hämta metadata.

Returer

En samling ServiceEndpoint objekt för det angivna kontraktet.

Undantag

Adressen, kontraktsamlingen eller klienten är null.

contracts är tom, minst en medlem i contracts är null eller contracts innehåller fler än ett kontrakt med samma namn och namnområde.

Kommentarer

Standardvärdet System.ServiceModel.Description.MetadataExchangeClientMode är MetadataExchangeClientMode.MetadataExchange.

Om du vill ladda ned metadata men inte matcha informationen till ServiceEndpoint objekt använder du den System.ServiceModel.Description.MetadataExchangeClient direkt.

Note

En tom samling returneras om inga slutpunkter importerades eller om inga slutpunkter matchade kontraktet. Om en tom samling returneras skrivs en varningsspårning.

Gäller för

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

Löser en metadataadress till objekten ServiceEndpoint för de angivna kontrakten med den angivna adressen och överföringsläget.

public:
 static System::ServiceModel::Description::ServiceEndpointCollection ^ Resolve(System::Collections::Generic::IEnumerable<System::ServiceModel::Description::ContractDescription ^> ^ contracts, Uri ^ address, System::ServiceModel::Description::MetadataExchangeClientMode mode);
public static System.ServiceModel.Description.ServiceEndpointCollection Resolve(System.Collections.Generic.IEnumerable<System.ServiceModel.Description.ContractDescription> contracts, Uri address, System.ServiceModel.Description.MetadataExchangeClientMode mode);
static member Resolve : seq<System.ServiceModel.Description.ContractDescription> * Uri * System.ServiceModel.Description.MetadataExchangeClientMode -> System.ServiceModel.Description.ServiceEndpointCollection
Public Shared Function Resolve (contracts As IEnumerable(Of ContractDescription), address As Uri, mode As MetadataExchangeClientMode) As ServiceEndpointCollection

Parametrar

contracts
IEnumerable<ContractDescription>

Kontrakten för vilka metadata ska laddas ned och matchas.

address
Uri

Metadataadressen.

mode
MetadataExchangeClientMode

Hämtningsläget.

Returer

En samling ServiceEndpoint objekt för det angivna kontraktet.

Undantag

Adress- eller kontraktsamlingen är null.

contracts är tom, minst en medlem i contracts är null eller contracts innehåller fler än ett kontrakt med samma namn och namnområde.

Kommentarer

Standardinställningarna på System.ServiceModel.Description.MetadataExchangeClient används för att hämta metadata.

Om du vill ladda ned metadata men inte matcha informationen till ServiceEndpoint objekt använder du den System.ServiceModel.Description.MetadataExchangeClient direkt.

Note

En tom samling returneras om inga slutpunkter importerades eller om inga slutpunkter matchade kontraktet. Om en tom samling returneras skrivs en varningsspårning.

Gäller för

Resolve(Type, Uri, MetadataExchangeClientMode)

Löser en metadataadress till objekten ServiceEndpoint för det angivna kontraktet med den angivna adressen och överföringsläget.

public:
 static System::ServiceModel::Description::ServiceEndpointCollection ^ Resolve(Type ^ contract, Uri ^ address, System::ServiceModel::Description::MetadataExchangeClientMode mode);
public static System.ServiceModel.Description.ServiceEndpointCollection Resolve(Type contract, Uri address, System.ServiceModel.Description.MetadataExchangeClientMode mode);
static member Resolve : Type * Uri * System.ServiceModel.Description.MetadataExchangeClientMode -> System.ServiceModel.Description.ServiceEndpointCollection
Public Shared Function Resolve (contract As Type, address As Uri, mode As MetadataExchangeClientMode) As ServiceEndpointCollection

Parametrar

contract
Type

Kontraktet för vilket metadata ska laddas ned och matchas.

address
Uri

Metadataadressen.

mode
MetadataExchangeClientMode

Hämtningsläget.

Returer

En samling ServiceEndpoint objekt för det angivna kontraktet.

Undantag

Adressen eller kontraktet är null.

Exempel

I följande kodexempel visas användningen av MetadataResolver för att ladda ned och returnera metadata som en samling objekt med hjälp av ServiceEndpoint en HTTP GET-begäran i stället för 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();
    }
}

Kommentarer

Resolve Använd metoden för att ange ett kontrakt, en adress och den nedladdningsmekanism som ska användas.

Standardinställningarna på System.ServiceModel.Description.MetadataExchangeClient används för att hämta metadata.

Om du vill ladda ned metadata men inte matcha informationen till ServiceEndpoint objekt använder du den System.ServiceModel.Description.MetadataExchangeClient direkt.

Note

En tom samling returneras om inga slutpunkter importerades eller om inga slutpunkter matchade kontraktet. Om en tom samling returneras skrivs en varningsspårning.

Gäller för

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

Löser en metadataadress till objekten ServiceEndpoint för de angivna kontrakten med den angivna adressen, överföringsläget och överföringsklienten.

public:
 static System::ServiceModel::Description::ServiceEndpointCollection ^ Resolve(System::Collections::Generic::IEnumerable<System::ServiceModel::Description::ContractDescription ^> ^ contracts, Uri ^ address, System::ServiceModel::Description::MetadataExchangeClientMode mode, System::ServiceModel::Description::MetadataExchangeClient ^ client);
public static System.ServiceModel.Description.ServiceEndpointCollection Resolve(System.Collections.Generic.IEnumerable<System.ServiceModel.Description.ContractDescription> contracts, Uri address, System.ServiceModel.Description.MetadataExchangeClientMode mode, System.ServiceModel.Description.MetadataExchangeClient client);
static member Resolve : seq<System.ServiceModel.Description.ContractDescription> * Uri * System.ServiceModel.Description.MetadataExchangeClientMode * System.ServiceModel.Description.MetadataExchangeClient -> System.ServiceModel.Description.ServiceEndpointCollection
Public Shared Function Resolve (contracts As IEnumerable(Of ContractDescription), address As Uri, mode As MetadataExchangeClientMode, client As MetadataExchangeClient) As ServiceEndpointCollection

Parametrar

contracts
IEnumerable<ContractDescription>

Kontrakten för vilka metadata ska laddas ned och matchas.

address
Uri

Metadataadressen.

mode
MetadataExchangeClientMode

Hämtningsläget.

client
MetadataExchangeClient

Används MetadataExchangeClient för att hämta metadata.

Returer

En samling ServiceEndpoint objekt för det angivna kontraktet.

Undantag

Adressen, kontraktsamlingen eller klienten är null.

contracts är tom, minst en medlem i contracts är null eller contracts innehåller fler än ett kontrakt med samma namn och namnområde.

Kommentarer

Om du vill ladda ned metadata men inte matcha informationen till ServiceEndpoint objekt använder du den System.ServiceModel.Description.MetadataExchangeClient direkt.

Note

En tom samling returneras om inga slutpunkter importerades eller om inga slutpunkter matchade kontraktet. Om en tom samling returneras skrivs en varningsspårning.

Gäller för