MetadataResolver.Resolve Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Scarica e risolve un indirizzo di metadati negli ServiceEndpoint oggetti per tale servizio.
Overload
| Nome | Descrizione |
|---|---|
| Resolve(IEnumerable<ContractDescription>, EndpointAddress) |
Risolve un indirizzo di metadati negli ServiceEndpoint oggetti per i contratti specificati usando l'indirizzo di metadati specificato. |
| Resolve(Type, EndpointAddress) |
Scarica e risolve un indirizzo di metadati in una raccolta di ServiceEndpoint oggetti per un contratto specificato in un indirizzo specificato. |
| Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient) |
Risolve un indirizzo di metadati negli ServiceEndpoint oggetti per i contratti specificati usando l'indirizzo dei metadati e MetadataExchangeClient. |
| Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode) |
Risolve un indirizzo di metadati negli ServiceEndpoint oggetti per i contratti specificati utilizzando l'indirizzo e la modalità di trasferimento specificati. |
| Resolve(Type, Uri, MetadataExchangeClientMode) |
Risolve un indirizzo di metadati negli ServiceEndpoint oggetti per il contratto specificato utilizzando l'indirizzo e la modalità di trasferimento specificati. |
| Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient) |
Risolve un indirizzo di metadati negli ServiceEndpoint oggetti per i contratti specificati usando l'indirizzo, la modalità di trasferimento e il client di trasferimento specificati. |
Commenti
Per scaricare i metadati ma non risolvere le informazioni in ServiceEndpoint oggetti, usare direttamente .System.ServiceModel.Description.MetadataExchangeClient
Per tutti i metodi sincroni e asincroni Resolve , viene restituita una raccolta vuota se non sono stati importati endpoint o se nessun endpoint corrisponde al contratto. Se viene restituita una raccolta vuota, viene scritta una traccia di avviso.
Resolve(IEnumerable<ContractDescription>, EndpointAddress)
Risolve un indirizzo di metadati negli ServiceEndpoint oggetti per i contratti specificati usando l'indirizzo di metadati specificato.
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
Parametri
- contracts
- IEnumerable<ContractDescription>
Contratti per i quali scaricare e risolvere i metadati.
- address
- EndpointAddress
Indirizzo dei metadati.
Valori restituiti
Raccolta di ServiceEndpoint oggetti per il contratto specificato.
Eccezioni
L'indirizzo o la raccolta di contratti è null.
contracts è vuoto, almeno un membro di contracts è null o contracts contiene più di un contratto con lo stesso nome e lo stesso spazio dei nomi.
Commenti
Le impostazioni predefinite in System.ServiceModel.Description.MetadataExchangeClient vengono usate per recuperare i metadati e il valore predefinito System.ServiceModel.Description.MetadataExchangeClientMode è MetadataExchangeClientMode.MetadataExchange.
Per scaricare i metadati ma non risolvere le informazioni in ServiceEndpoint oggetti, usare direttamente .System.ServiceModel.Description.MetadataExchangeClient
Note
Se non sono stati importati endpoint o se nessun endpoint corrisponde al contratto, viene restituita una raccolta vuota. Se viene restituita una raccolta vuota, viene scritta una traccia di avviso.
Si applica a
Resolve(Type, EndpointAddress)
Scarica e risolve un indirizzo di metadati in una raccolta di ServiceEndpoint oggetti per un contratto specificato in un indirizzo specificato.
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
Parametri
- contract
- Type
Contratti per i quali scaricare e risolvere i metadati.
- address
- EndpointAddress
Indirizzo dei metadati.
Valori restituiti
Raccolta di ServiceEndpoint oggetti per il contratto specificato.
Eccezioni
L'indirizzo o il contratto è null.
Esempio
Nell'esempio di codice seguente viene illustrato l'uso della MetadataResolver classe per restituire metadati come raccolta di ServiceEndpoint oggetti che vengono quindi usati per connettersi a un'istanza del servizio.
// 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();
}
}
Commenti
Utilizzare il Resolve metodo per specificare il contratto e l'indirizzo dei metadati da usare durante il download e la risoluzione dei metadati.
Le impostazioni predefinite in System.ServiceModel.Description.MetadataExchangeClient vengono usate per recuperare i metadati e il valore predefinito System.ServiceModel.Description.MetadataExchangeClientMode è MetadataExchangeClientMode.MetadataExchange.
Per scaricare i metadati ma non risolvere le informazioni in ServiceEndpoint oggetti, usare direttamente .System.ServiceModel.Description.MetadataExchangeClient
Note
Se non sono stati importati endpoint o se nessun endpoint corrisponde al contratto, viene restituita una raccolta vuota. Se viene restituita una raccolta vuota, viene scritta una traccia di avviso.
Questo metodo richiede di specificare un tipo di contratto. È possibile specificare il contratto dichiarando l'interfaccia del servizio nel codice client o usando un client WCF generato da Svcutil.exe. Se l'interfaccia cambia ,ad esempio aggiungendo una nuova operazione, è necessario aggiornare l'interfaccia nel codice client o generare un nuovo client WCF. In caso contrario, viene generata un'eccezione. Ad esempio, si dispone di un servizio che implementa un contratto di servizio denominato ICalculator che definisce Add(), Sub(), Mult() e Div(). Si crea un'applicazione client e si genera un client WCF. Si aggiunge quindi un metodo a ICalculator denominato Echo(). Se si scrive quindi un'applicazione che chiama Resolve(Type, EndpointAddress) senza generare un nuovo client WCF, viene generata l'eccezione seguente.
Unhandled Exception: System.ServiceModel.Description.WsdlImporter+WsdlImportException: Cannot locate operation Echo in Contract ICalculator.
Si applica a
Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)
Risolve un indirizzo di metadati negli ServiceEndpoint oggetti per i contratti specificati usando l'indirizzo dei metadati e 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
Parametri
- contracts
- IEnumerable<ContractDescription>
Contratti per i quali scaricare e risolvere i metadati.
- address
- EndpointAddress
Indirizzo dei metadati.
- client
- MetadataExchangeClient
Oggetto MetadataExchangeClient utilizzato per recuperare i metadati.
Valori restituiti
Raccolta di ServiceEndpoint oggetti per il contratto specificato.
Eccezioni
L'indirizzo, la raccolta di contratti o il client è null.
contracts è vuoto, almeno un membro di contracts è null o contracts contiene più di un contratto con lo stesso nome e lo stesso spazio dei nomi.
Commenti
L'impostazione predefinita System.ServiceModel.Description.MetadataExchangeClientMode è MetadataExchangeClientMode.MetadataExchange.
Per scaricare i metadati ma non risolvere le informazioni in ServiceEndpoint oggetti, usare direttamente .System.ServiceModel.Description.MetadataExchangeClient
Note
Se non sono stati importati endpoint o se nessun endpoint corrisponde al contratto, viene restituita una raccolta vuota. Se viene restituita una raccolta vuota, viene scritta una traccia di avviso.
Si applica a
Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)
Risolve un indirizzo di metadati negli ServiceEndpoint oggetti per i contratti specificati utilizzando l'indirizzo e la modalità di trasferimento specificati.
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
Parametri
- contracts
- IEnumerable<ContractDescription>
Contratti per i quali scaricare e risolvere i metadati.
- address
- Uri
Indirizzo dei metadati.
Modalità di recupero.
Valori restituiti
Raccolta di ServiceEndpoint oggetti per il contratto specificato.
Eccezioni
L'indirizzo o la raccolta di contratti è null.
contracts è vuoto, almeno un membro di contracts è null o contracts contiene più di un contratto con lo stesso nome e lo stesso spazio dei nomi.
Commenti
Le impostazioni predefinite in System.ServiceModel.Description.MetadataExchangeClient vengono usate per recuperare i metadati.
Per scaricare i metadati ma non risolvere le informazioni in ServiceEndpoint oggetti, usare direttamente .System.ServiceModel.Description.MetadataExchangeClient
Note
Se non sono stati importati endpoint o se nessun endpoint corrisponde al contratto, viene restituita una raccolta vuota. Se viene restituita una raccolta vuota, viene scritta una traccia di avviso.
Si applica a
Resolve(Type, Uri, MetadataExchangeClientMode)
Risolve un indirizzo di metadati negli ServiceEndpoint oggetti per il contratto specificato utilizzando l'indirizzo e la modalità di trasferimento specificati.
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
Parametri
- contract
- Type
Contratto per il quale scaricare e risolvere i metadati.
- address
- Uri
Indirizzo dei metadati.
Modalità di recupero.
Valori restituiti
Raccolta di ServiceEndpoint oggetti per il contratto specificato.
Eccezioni
L'indirizzo o il contratto è null.
Esempio
Nell'esempio di codice seguente viene illustrato l'uso di MetadataResolver per scaricare e restituire metadati come raccolta di ServiceEndpoint oggetti usando una richiesta HTTP GET anziché 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();
}
}
Commenti
Usare il Resolve metodo per specificare un contratto e un indirizzo e il meccanismo di download da usare.
Le impostazioni predefinite in System.ServiceModel.Description.MetadataExchangeClient vengono usate per recuperare i metadati.
Per scaricare i metadati ma non risolvere le informazioni in ServiceEndpoint oggetti, usare direttamente .System.ServiceModel.Description.MetadataExchangeClient
Note
Se non sono stati importati endpoint o se nessun endpoint corrisponde al contratto, viene restituita una raccolta vuota. Se viene restituita una raccolta vuota, viene scritta una traccia di avviso.
Si applica a
Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient)
Risolve un indirizzo di metadati negli ServiceEndpoint oggetti per i contratti specificati usando l'indirizzo, la modalità di trasferimento e il client di trasferimento specificati.
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
Parametri
- contracts
- IEnumerable<ContractDescription>
Contratti per i quali scaricare e risolvere i metadati.
- address
- Uri
Indirizzo dei metadati.
Modalità di recupero.
- client
- MetadataExchangeClient
Oggetto MetadataExchangeClient utilizzato per recuperare i metadati.
Valori restituiti
Raccolta di ServiceEndpoint oggetti per il contratto specificato.
Eccezioni
L'indirizzo, la raccolta di contratti o il client è null.
contracts è vuoto, almeno un membro di contracts è null o contracts contiene più di un contratto con lo stesso nome e lo stesso spazio dei nomi.
Commenti
Per scaricare i metadati ma non risolvere le informazioni in ServiceEndpoint oggetti, usare direttamente .System.ServiceModel.Description.MetadataExchangeClient
Note
Se non sono stati importati endpoint o se nessun endpoint corrisponde al contratto, viene restituita una raccolta vuota. Se viene restituita una raccolta vuota, viene scritta una traccia di avviso.