MetadataResolver.Resolve Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Télécharge et résout une adresse de métadonnées en objets ServiceEndpoint pour ce service.
Surcharges
Resolve(IEnumerable<ContractDescription>, EndpointAddress) |
Résout une adresse de métadonnées en objets ServiceEndpoint pour les contrats spécifiés à l'aide de l'adresse de métadonnées spécifiée. |
Resolve(Type, EndpointAddress) |
Télécharge et résout une adresse de métadonnées en une collection d'objets ServiceEndpoint pour un contrat spécifique à une adresse donnée. |
Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient) |
Résout une adresse de métadonnées en objets ServiceEndpoint pour les contrats spécifiés à l'aide de l'adresse de métadonnées et du MetadataExchangeClient spécifiés. |
Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode) |
Résout une adresse de métadonnées en objets ServiceEndpoint pour les contrats spécifiés à l'aide de l'adresse de métadonnées et du mode de transfert spécifiés. |
Resolve(Type, Uri, MetadataExchangeClientMode) |
Résout une adresse de métadonnées en objets ServiceEndpoint pour le contrat spécifié à l'aide de l'adresse de métadonnées et du mode de transfert spécifiés. |
Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient) |
Résout une adresse de métadonnées en objets ServiceEndpoint pour les contrats spécifiés à l'aide de l'adresse de métadonnées, du mode de transfert et du client de transfert spécifiés. |
Remarques
Pour télécharger des métadonnées sans résoudre les informations en objets ServiceEndpoint, faites directement appel à System.ServiceModel.Description.MetadataExchangeClient.
Pour toutes les méthodes Resolve
synchrones et asynchrones, une collection vide est retournée si aucun point de terminaison n'est importé ou si aucun point de terminaison ne correspond au contrat. Si une collection vide est retournée, un suivi d’avertissement est écrit.
Resolve(IEnumerable<ContractDescription>, EndpointAddress)
Résout une adresse de métadonnées en objets ServiceEndpoint pour les contrats spécifiés à l'aide de l'adresse de métadonnées spécifiée.
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
Paramètres
- contracts
- IEnumerable<ContractDescription>
Contrats pour lesquels des métadonnées doivent être téléchargées et résolues.
- address
- EndpointAddress
Adresse des métadonnées.
Retours
Collection d'objets ServiceEndpoint pour le contrat spécifié.
Exceptions
L'adresse ou la collection de contrats a la valeur null
.
contracts
est vide, au moins un membre de contracts
a la valeur null ou contracts
contient plusieurs contrats portant le même nom et le même espace de noms.
Remarques
Les paramètres par défaut de System.ServiceModel.Description.MetadataExchangeClient sont utilisés pour récupérer les métadonnées et le System.ServiceModel.Description.MetadataExchangeClientMode par défaut correspond à MetadataExchangeClientMode.MetadataExchange.
Pour télécharger des métadonnées sans résoudre les informations en objets ServiceEndpoint, faites directement appel à System.ServiceModel.Description.MetadataExchangeClient.
Notes
Une collection vide est retournée si aucun point de terminaison n’est importé ou si aucun point de terminaison ne correspond au contrat. Si une collection vide est retournée, un suivi d’avertissement est écrit.
S’applique à
Resolve(Type, EndpointAddress)
Télécharge et résout une adresse de métadonnées en une collection d'objets ServiceEndpoint pour un contrat spécifique à une adresse donnée.
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
Paramètres
- contract
- Type
Contrats pour lesquels des métadonnées doivent être téléchargées et résolues.
- address
- EndpointAddress
Adresse des métadonnées.
Retours
Collection d'objets ServiceEndpoint pour le contrat spécifié.
Exceptions
L'adresse ou le contrat a la valeur null
.
Exemples
L'exemple de code suivant indique comment utiliser la classe MetadataResolver pour retourner des métadonnées en tant que collection d'objets ServiceEndpoint qui servent ensuite à se connecter à une instance de service.
// 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();
}
}
Remarques
Utilisez la méthode Resolve pour spécifier le contrat et l'adresse des métadonnées à utiliser lors du téléchargement et de la résolution de métadonnées.
Les paramètres par défaut de System.ServiceModel.Description.MetadataExchangeClient sont utilisés pour récupérer les métadonnées et le System.ServiceModel.Description.MetadataExchangeClientMode par défaut correspond à MetadataExchangeClientMode.MetadataExchange.
Pour télécharger des métadonnées sans résoudre les informations en objets ServiceEndpoint, faites directement appel à System.ServiceModel.Description.MetadataExchangeClient.
Notes
Une collection vide est retournée si aucun point de terminaison n’est importé ou si aucun point de terminaison ne correspond au contrat. Si une collection vide est retournée, un suivi d’avertissement est écrit.
Cette méthode vous oblige à spécifier un type de contrat. Vous pouvez spécifier le contrat en déclarant l’interface de service dans le code client ou en utilisant un client WCF généré par Svcutil.exe. Si l’interface change (ajout d’une nouvelle opération, par exemple), vous devez mettre à jour l’interface dans le code client ou générer un nouveau client WCF. Ne pas procéder ainsi entraîne la levée d'une exception. Supposons que vous disposiez d'un service implémentant un contrat de service appelé ICalculator qui définit Add(), Sub(), Mult() et Div(). Vous créez une application cliente et générez un client WCF. Vous ajoutez ensuite une méthode à ICalculator, appelée Echo(). Si vous écrivez ensuite une application qui appelle Resolve(Type, EndpointAddress) sans générer de nouveau client WCF, vous obtenez l’exception suivante.
Unhandled Exception: System.ServiceModel.Description.WsdlImporter+WsdlImportException: Cannot locate operation Echo in Contract ICalculator
.
S’applique à
Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)
Résout une adresse de métadonnées en objets ServiceEndpoint pour les contrats spécifiés à l'aide de l'adresse de métadonnées et du MetadataExchangeClient spécifiés.
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
Paramètres
- contracts
- IEnumerable<ContractDescription>
Contrats pour lesquels des métadonnées doivent être téléchargées et résolues.
- address
- EndpointAddress
Adresse des métadonnées.
- client
- MetadataExchangeClient
MetadataExchangeClient utilisé pour récupérer les métadonnées.
Retours
Collection d'objets ServiceEndpoint pour le contrat spécifié.
Exceptions
L'adresse, la collection de contrats ou le client a la valeur null
.
contracts
est vide, au moins un membre de contracts
a la valeur null ou contracts
contient plusieurs contrats portant le même nom et le même espace de noms.
Remarques
La valeur par défaut de System.ServiceModel.Description.MetadataExchangeClientMode est MetadataExchangeClientMode.MetadataExchange.
Pour télécharger des métadonnées sans résoudre les informations en objets ServiceEndpoint, faites directement appel à System.ServiceModel.Description.MetadataExchangeClient.
Notes
Une collection vide est retournée si aucun point de terminaison n’est importé ou si aucun point de terminaison ne correspond au contrat. Si une collection vide est retournée, un suivi d’avertissement est écrit.
S’applique à
Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)
Résout une adresse de métadonnées en objets ServiceEndpoint pour les contrats spécifiés à l'aide de l'adresse de métadonnées et du mode de transfert spécifiés.
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
Paramètres
- contracts
- IEnumerable<ContractDescription>
Contrats pour lesquels des métadonnées doivent être téléchargées et résolues.
- address
- Uri
Adresse des métadonnées.
Mode de récupération.
Retours
Collection d'objets ServiceEndpoint pour le contrat spécifié.
Exceptions
L'adresse ou la collection de contrats a la valeur null
.
contracts
est vide, au moins un membre de contracts
a la valeur null ou contracts
contient plusieurs contrats portant le même nom et le même espace de noms.
Remarques
Les paramètres par défaut de System.ServiceModel.Description.MetadataExchangeClient sont utilisés pour récupérer les métadonnées.
Pour télécharger des métadonnées sans résoudre les informations en objets ServiceEndpoint, faites directement appel à System.ServiceModel.Description.MetadataExchangeClient.
Notes
Une collection vide est retournée si aucun point de terminaison n’est importé ou si aucun point de terminaison ne correspond au contrat. Si une collection vide est retournée, un suivi d’avertissement est écrit.
S’applique à
Resolve(Type, Uri, MetadataExchangeClientMode)
Résout une adresse de métadonnées en objets ServiceEndpoint pour le contrat spécifié à l'aide de l'adresse de métadonnées et du mode de transfert spécifiés.
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
Paramètres
- contract
- Type
Contrat pour lequel des métadonnées doivent être téléchargées et résolues.
- address
- Uri
Adresse des métadonnées.
Mode de récupération.
Retours
Collection d'objets ServiceEndpoint pour le contrat spécifié.
Exceptions
L'adresse ou le contrat a la valeur null
.
Exemples
L’exemple de code suivant met en œuvre MetadataResolver pour télécharger et retourner des métadonnées sous forme de collection d’objets ServiceEndpoint à l’aide d’une demande HTTP GET, au lieu de 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();
}
}
Remarques
Utilisez la méthode Resolve pour spécifier le contrat, l'adresse et le mécanisme de téléchargement à utiliser.
Les paramètres par défaut de System.ServiceModel.Description.MetadataExchangeClient sont utilisés pour récupérer les métadonnées.
Pour télécharger des métadonnées sans résoudre les informations en objets ServiceEndpoint, faites directement appel à System.ServiceModel.Description.MetadataExchangeClient.
Notes
Une collection vide est retournée si aucun point de terminaison n’est importé ou si aucun point de terminaison ne correspond au contrat. Si une collection vide est retournée, un suivi d’avertissement est écrit.
S’applique à
Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient)
Résout une adresse de métadonnées en objets ServiceEndpoint pour les contrats spécifiés à l'aide de l'adresse de métadonnées, du mode de transfert et du client de transfert spécifiés.
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
Paramètres
- contracts
- IEnumerable<ContractDescription>
Contrats pour lesquels des métadonnées doivent être téléchargées et résolues.
- address
- Uri
Adresse des métadonnées.
Mode de récupération.
- client
- MetadataExchangeClient
MetadataExchangeClient utilisé pour récupérer les métadonnées.
Retours
Collection d'objets ServiceEndpoint pour le contrat spécifié.
Exceptions
L'adresse, la collection de contrats ou le client a la valeur null
.
contracts
est vide, au moins un membre de contracts
a la valeur null ou contracts
contient plusieurs contrats portant le même nom et le même espace de noms.
Remarques
Pour télécharger des métadonnées sans résoudre les informations en objets ServiceEndpoint, faites directement appel à System.ServiceModel.Description.MetadataExchangeClient.
Notes
Une collection vide est retournée si aucun point de terminaison n’est importé ou si aucun point de terminaison ne correspond au contrat. Si une collection vide est retournée, un suivi d’avertissement est écrit.