MetadataResolver.Resolve Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera i rozpoznaje adres metadanych w ServiceEndpoint obiektach dla tej usługi.
Przeciążenia
Resolve(IEnumerable<ContractDescription>, EndpointAddress) |
Rozpoznaje adres metadanych w ServiceEndpoint obiektach określonych kontraktów przy użyciu określonego adresu metadanych. |
Resolve(Type, EndpointAddress) |
Pobiera i rozpoznaje adres metadanych w kolekcji ServiceEndpoint obiektów dla określonego kontraktu pod określonym adresem. |
Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient) |
Rozpoznaje adres metadanych w ServiceEndpoint obiektach określonych kontraktów przy użyciu określonego adresu metadanych i MetadataExchangeClient. |
Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode) |
Rozpoznaje adres metadanych w ServiceEndpoint obiektach określonych kontraktów przy użyciu określonego adresu i trybu transferu. |
Resolve(Type, Uri, MetadataExchangeClientMode) |
Rozpoznaje adres metadanych w ServiceEndpoint obiektach dla określonego kontraktu przy użyciu określonego adresu i trybu transferu. |
Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient) |
Rozpoznaje adres metadanych w ServiceEndpoint obiektach określonych kontraktów przy użyciu określonego adresu, trybu transferu i klienta transferu. |
Uwagi
Aby pobrać metadane, ale nie rozpoznać informacji w ServiceEndpoint obiektach, użyj System.ServiceModel.Description.MetadataExchangeClient ich bezpośrednio.
W przypadku wszystkich metod synchronicznych i asynchronicznych Resolve
pusta kolekcja jest zwracana, jeśli nie zaimportowano żadnych punktów końcowych lub jeśli żadne punkty końcowe nie pasują do kontraktu. Jeśli zostanie zwrócona pusta kolekcja, zostanie zapisany ślad ostrzegawczy.
Resolve(IEnumerable<ContractDescription>, EndpointAddress)
Rozpoznaje adres metadanych w ServiceEndpoint obiektach określonych kontraktów przy użyciu określonego adresu metadanych.
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
Parametry
- contracts
- IEnumerable<ContractDescription>
Kontrakty, dla których mają zostać pobrane i rozwiązane problemy z metadanymi.
- address
- EndpointAddress
Adres metadanych.
Zwraca
Kolekcja ServiceEndpoint obiektów dla określonego kontraktu.
Wyjątki
Adres lub kolekcja kontraktów to null
.
contracts
jest pusty, co najmniej jeden element członkowski contracts
ma wartość null lub contracts
zawiera więcej niż jeden kontrakt o tej samej nazwie i przestrzeni nazw.
Uwagi
Domyślne ustawienia w obiekcie System.ServiceModel.Description.MetadataExchangeClient są używane do pobierania metadanych, a wartością domyślną System.ServiceModel.Description.MetadataExchangeClientMode jest MetadataExchangeClientMode.MetadataExchange.
Aby pobrać metadane, ale nie rozpoznać informacji w ServiceEndpoint obiektach, użyj System.ServiceModel.Description.MetadataExchangeClient ich bezpośrednio.
Uwaga
Pusta kolekcja jest zwracana, jeśli żadne punkty końcowe nie zostały zaimportowane lub jeśli żadne punkty końcowe nie pasują do kontraktu. Jeśli zostanie zwrócona pusta kolekcja, zostanie zapisany ślad ostrzegawczy.
Dotyczy
Resolve(Type, EndpointAddress)
Pobiera i rozpoznaje adres metadanych w kolekcji ServiceEndpoint obiektów dla określonego kontraktu pod określonym adresem.
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
Parametry
- contract
- Type
Kontrakty, dla których mają zostać pobrane i rozwiązane problemy z metadanymi.
- address
- EndpointAddress
Adres metadanych.
Zwraca
Kolekcja ServiceEndpoint obiektów dla określonego kontraktu.
Wyjątki
Adres lub kontrakt to null
.
Przykłady
Poniższy przykład kodu przedstawia użycie MetadataResolver klasy do zwracania metadanych jako kolekcji ServiceEndpoint obiektów, które są następnie używane do nawiązywania połączenia z wystąpieniem usługi.
// 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();
}
}
Uwagi
Resolve Użyj metody , aby określić kontrakt i adres metadanych do użycia podczas pobierania i rozpoznawania metadanych.
Domyślne ustawienia w obiekcie System.ServiceModel.Description.MetadataExchangeClient są używane do pobierania metadanych, a wartością domyślną System.ServiceModel.Description.MetadataExchangeClientMode jest MetadataExchangeClientMode.MetadataExchange.
Aby pobrać metadane, ale nie rozpoznać informacji w ServiceEndpoint obiektach, użyj System.ServiceModel.Description.MetadataExchangeClient ich bezpośrednio.
Uwaga
Pusta kolekcja jest zwracana, jeśli żadne punkty końcowe nie zostały zaimportowane lub jeśli żadne punkty końcowe nie pasują do kontraktu. Jeśli zostanie zwrócona pusta kolekcja, zostanie zapisany ślad ostrzegawczy.
Ta metoda wymaga określenia typu kontraktu. Kontrakt można określić, deklarując interfejs usługi w kodzie klienta lub przy użyciu klienta WCF wygenerowanego przez Svcutil.exe. Jeśli interfejs zmieni się (na przykład dodanie nowej operacji), musisz zaktualizować interfejs w kodzie klienta lub wygenerować nowego klienta WCF. Jeśli tego nie zrobisz, zostanie zgłoszony wyjątek. Na przykład masz usługę, która implementuje kontrakt usługi o nazwie ICalculator, który definiuje add(), Sub(), Mult() i Div(). Tworzysz aplikację kliencką i generujesz klienta WCF. Następnie należy dodać metodę do metody ICalculator o nazwie Echo(). Jeśli następnie napiszesz aplikację, która wywołuje bez Resolve(Type, EndpointAddress) generowania nowego klienta WCF, otrzymasz następujący wyjątek.
Unhandled Exception: System.ServiceModel.Description.WsdlImporter+WsdlImportException: Cannot locate operation Echo in Contract ICalculator
.
Dotyczy
Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)
Rozpoznaje adres metadanych w ServiceEndpoint obiektach określonych kontraktów przy użyciu określonego adresu metadanych i 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
Parametry
- contracts
- IEnumerable<ContractDescription>
Kontrakty, dla których mają zostać pobrane i rozwiązane problemy z metadanymi.
- address
- EndpointAddress
Adres metadanych.
- client
- MetadataExchangeClient
Używane MetadataExchangeClient do pobierania metadanych.
Zwraca
Kolekcja ServiceEndpoint obiektów dla określonego kontraktu.
Wyjątki
Adres, kolekcja kontraktów lub klient to null
.
contracts
jest pusty, co najmniej jeden element członkowski contracts
ma wartość null lub contracts
zawiera więcej niż jeden kontrakt o tej samej nazwie i przestrzeni nazw.
Uwagi
Wartość domyślna System.ServiceModel.Description.MetadataExchangeClientMode to MetadataExchangeClientMode.MetadataExchange.
Aby pobrać metadane, ale nie rozpoznać informacji w ServiceEndpoint obiektach, użyj System.ServiceModel.Description.MetadataExchangeClient ich bezpośrednio.
Uwaga
Pusta kolekcja jest zwracana, jeśli żadne punkty końcowe nie zostały zaimportowane lub jeśli żadne punkty końcowe nie pasują do kontraktu. Jeśli zostanie zwrócona pusta kolekcja, zostanie zapisany ślad ostrzegawczy.
Dotyczy
Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)
Rozpoznaje adres metadanych w ServiceEndpoint obiektach określonych kontraktów przy użyciu określonego adresu i trybu transferu.
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
Parametry
- contracts
- IEnumerable<ContractDescription>
Kontrakty, dla których mają zostać pobrane i rozwiązane problemy z metadanymi.
- address
- Uri
Adres metadanych.
Tryb pobierania.
Zwraca
Kolekcja ServiceEndpoint obiektów dla określonego kontraktu.
Wyjątki
Adres lub kolekcja kontraktów to null
.
contracts
jest pusty, co najmniej jeden element członkowski contracts
ma wartość null lub contracts
zawiera więcej niż jeden kontrakt o tej samej nazwie i przestrzeni nazw.
Uwagi
Ustawienia domyślne w obiekcie System.ServiceModel.Description.MetadataExchangeClient służą do pobierania metadanych.
Aby pobrać metadane, ale nie rozpoznać informacji w ServiceEndpoint obiektach, użyj System.ServiceModel.Description.MetadataExchangeClient ich bezpośrednio.
Uwaga
Pusta kolekcja jest zwracana, jeśli żadne punkty końcowe nie zostały zaimportowane lub jeśli żadne punkty końcowe nie pasują do kontraktu. Jeśli zostanie zwrócona pusta kolekcja, zostanie zapisany ślad ostrzegawczy.
Dotyczy
Resolve(Type, Uri, MetadataExchangeClientMode)
Rozpoznaje adres metadanych w ServiceEndpoint obiektach dla określonego kontraktu przy użyciu określonego adresu i trybu transferu.
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
Parametry
- contract
- Type
Kontrakt, dla którego należy pobrać i rozpoznać metadane.
- address
- Uri
Adres metadanych.
Tryb pobierania.
Zwraca
Kolekcja ServiceEndpoint obiektów dla określonego kontraktu.
Wyjątki
Adres lub kontrakt to null
.
Przykłady
Poniższy przykład kodu przedstawia użycie MetadataResolver funkcji do pobierania i zwracania metadanych jako kolekcji ServiceEndpoint obiektów przy użyciu żądania HTTP GET, a nie 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();
}
}
Uwagi
Resolve Użyj metody , aby określić kontrakt i adres oraz mechanizm pobierania do użycia.
Ustawienia domyślne w obiekcie System.ServiceModel.Description.MetadataExchangeClient służą do pobierania metadanych.
Aby pobrać metadane, ale nie rozpoznać informacji w ServiceEndpoint obiektach, użyj System.ServiceModel.Description.MetadataExchangeClient ich bezpośrednio.
Uwaga
Pusta kolekcja jest zwracana, jeśli żadne punkty końcowe nie zostały zaimportowane lub jeśli żadne punkty końcowe nie pasują do kontraktu. Jeśli zostanie zwrócona pusta kolekcja, zostanie zapisany ślad ostrzegawczy.
Dotyczy
Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient)
Rozpoznaje adres metadanych w ServiceEndpoint obiektach określonych kontraktów przy użyciu określonego adresu, trybu transferu i klienta transferu.
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
Parametry
- contracts
- IEnumerable<ContractDescription>
Kontrakty, dla których mają zostać pobrane i rozwiązane problemy z metadanymi.
- address
- Uri
Adres metadanych.
Tryb pobierania.
- client
- MetadataExchangeClient
Używane MetadataExchangeClient do pobierania metadanych.
Zwraca
Kolekcja ServiceEndpoint obiektów dla określonego kontraktu.
Wyjątki
Adres, kolekcja kontraktów lub klient to null
.
contracts
jest pusty, co najmniej jeden element członkowski contracts
ma wartość null lub contracts
zawiera więcej niż jeden kontrakt o tej samej nazwie i przestrzeni nazw.
Uwagi
Aby pobrać metadane, ale nie rozpoznać informacji w ServiceEndpoint obiektach, użyj System.ServiceModel.Description.MetadataExchangeClient ich bezpośrednio.
Uwaga
Pusta kolekcja jest zwracana, jeśli żadne punkty końcowe nie zostały zaimportowane lub jeśli żadne punkty końcowe nie pasują do kontraktu. Jeśli zostanie zwrócona pusta kolekcja, zostanie zapisany ślad ostrzegawczy.