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 dans les ServiceEndpoint objets de ce service.
Surcharges
| Nom | Description |
|---|---|
| Resolve(IEnumerable<ContractDescription>, EndpointAddress) |
Résout une adresse de métadonnées dans les ServiceEndpoint objets des 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 dans une collection d’objets ServiceEndpoint pour un contrat spécifié à une adresse spécifiée. |
| Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient) |
Résout une adresse de métadonnées dans les ServiceEndpoint objets des contrats spécifiés à l’aide de l’adresse de métadonnées spécifiée et MetadataExchangeClient. |
| Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode) |
Résout une adresse de métadonnées dans les ServiceEndpoint objets des contrats spécifiés à l’aide de l’adresse et du mode de transfert spécifiés. |
| Resolve(Type, Uri, MetadataExchangeClientMode) |
Résout une adresse de métadonnées dans les ServiceEndpoint objets du contrat spécifié à l’aide de l’adresse et du mode de transfert spécifiés. |
| Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient) |
Résout une adresse de métadonnées dans les ServiceEndpoint objets des contrats spécifiés à l’aide de l’adresse, du mode de transfert et du client de transfert spécifiés. |
Remarques
Pour télécharger les métadonnées, mais pas résoudre les informations dans ServiceEndpoint des objets, utilisez directement.System.ServiceModel.Description.MetadataExchangeClient
Pour toutes les méthodes synchrones et asynchrones Resolve , une collection vide est retournée si aucun point de terminaison n’a été importé ou si aucun point de terminaison ne correspond au contrat. Si une collection vide est retournée, une trace d’avertissement est écrite.
Resolve(IEnumerable<ContractDescription>, EndpointAddress)
Résout une adresse de métadonnées dans les ServiceEndpoint objets des 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 télécharger et résoudre les métadonnées.
- address
- EndpointAddress
Adresse des métadonnées.
Retours
Collection d’objets ServiceEndpoint pour le contrat spécifié.
Exceptions
La collection d’adresses ou de contrats est null.
contracts est vide, au moins un membre est contracts 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 sur le fichier System.ServiceModel.Description.MetadataExchangeClient sont utilisés pour récupérer les métadonnées et la valeur par défaut System.ServiceModel.Description.MetadataExchangeClientMode est MetadataExchangeClientMode.MetadataExchange.
Pour télécharger les métadonnées, mais pas résoudre les informations dans ServiceEndpoint des objets, utilisez directement.System.ServiceModel.Description.MetadataExchangeClient
Note
Une collection vide est retournée si aucun point de terminaison n’a été importé ou si aucun point de terminaison ne correspond au contrat. Si une collection vide est retournée, une trace d’avertissement est écrite.
S’applique à
Resolve(Type, EndpointAddress)
Télécharge et résout une adresse de métadonnées dans une collection d’objets ServiceEndpoint pour un contrat spécifié à une adresse spécifié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 télécharger et résoudre les métadonnées.
- address
- EndpointAddress
Adresse des métadonnées.
Retours
Collection d’objets ServiceEndpoint pour le contrat spécifié.
Exceptions
L’adresse ou le contrat est null.
Exemples
L’exemple de code suivant montre l’utilisation de la MetadataResolver classe pour retourner des métadonnées en tant que collection d’objets ServiceEndpoint qui sont ensuite utilisés pour 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 Resolve méthode pour spécifier le contrat et l’adresse de métadonnées à utiliser lors du téléchargement et de la résolution des métadonnées.
Les paramètres par défaut sur le fichier System.ServiceModel.Description.MetadataExchangeClient sont utilisés pour récupérer les métadonnées et la valeur par défaut System.ServiceModel.Description.MetadataExchangeClientMode est MetadataExchangeClientMode.MetadataExchange.
Pour télécharger les métadonnées, mais pas résoudre les informations dans ServiceEndpoint des objets, utilisez directement.System.ServiceModel.Description.MetadataExchangeClient
Note
Une collection vide est retournée si aucun point de terminaison n’a été importé ou si aucun point de terminaison ne correspond au contrat. Si une collection vide est retournée, une trace d’avertissement est écrite.
Cette méthode nécessite que vous spécifiiez un type de contrat. Vous pouvez spécifier le contrat en déclarant l’interface de service dans le code client ou à l’aide d’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. Si ce n’est pas le cas, une exception est levée. Par exemple, vous disposez d’un service qui implémente 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é 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 dans les ServiceEndpoint objets des contrats spécifiés à l’aide de l’adresse de métadonnées spécifiée et 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
Paramètres
- contracts
- IEnumerable<ContractDescription>
Contrats pour lesquels télécharger et résoudre les métadonnées.
- 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 est null.
contracts est vide, au moins un membre est contracts 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 les métadonnées, mais pas résoudre les informations dans ServiceEndpoint des objets, utilisez directement.System.ServiceModel.Description.MetadataExchangeClient
Note
Une collection vide est retournée si aucun point de terminaison n’a été importé ou si aucun point de terminaison ne correspond au contrat. Si une collection vide est retournée, une trace d’avertissement est écrite.
S’applique à
Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)
Résout une adresse de métadonnées dans les ServiceEndpoint objets des contrats spécifiés à l’aide de l’adresse 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 télécharger et résoudre les métadonnées.
- address
- Uri
Adresse des métadonnées.
Mode de récupération.
Retours
Collection d’objets ServiceEndpoint pour le contrat spécifié.
Exceptions
La collection d’adresses ou de contrats est null.
contracts est vide, au moins un membre est contracts 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 sont System.ServiceModel.Description.MetadataExchangeClient utilisés pour récupérer les métadonnées.
Pour télécharger les métadonnées, mais pas résoudre les informations dans ServiceEndpoint des objets, utilisez directement.System.ServiceModel.Description.MetadataExchangeClient
Note
Une collection vide est retournée si aucun point de terminaison n’a été importé ou si aucun point de terminaison ne correspond au contrat. Si une collection vide est retournée, une trace d’avertissement est écrite.
S’applique à
Resolve(Type, Uri, MetadataExchangeClientMode)
Résout une adresse de métadonnées dans les ServiceEndpoint objets du contrat spécifié à l’aide de l’adresse 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 télécharger et résoudre les métadonnées.
- 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 est null.
Exemples
L’exemple de code suivant montre l’utilisation de la MetadataResolver méthode pour télécharger et retourner des métadonnées en tant que collection d’objets ServiceEndpoint à l’aide d’une requête HTTP GET plutôt que 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 Resolve méthode pour spécifier un contrat et une adresse, ainsi que le mécanisme de téléchargement à utiliser.
Les paramètres par défaut sont System.ServiceModel.Description.MetadataExchangeClient utilisés pour récupérer les métadonnées.
Pour télécharger les métadonnées, mais pas résoudre les informations dans ServiceEndpoint des objets, utilisez directement.System.ServiceModel.Description.MetadataExchangeClient
Note
Une collection vide est retournée si aucun point de terminaison n’a été importé ou si aucun point de terminaison ne correspond au contrat. Si une collection vide est retournée, une trace d’avertissement est écrite.
S’applique à
Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient)
Résout une adresse de métadonnées dans les ServiceEndpoint objets des contrats spécifiés à l’aide de l’adresse, 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 télécharger et résoudre les métadonnées.
- 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 est null.
contracts est vide, au moins un membre est contracts null ou contracts contient plusieurs contrats portant le même nom et le même espace de noms.
Remarques
Pour télécharger les métadonnées, mais pas résoudre les informations dans ServiceEndpoint des objets, utilisez directement.System.ServiceModel.Description.MetadataExchangeClient
Note
Une collection vide est retournée si aucun point de terminaison n’a été importé ou si aucun point de terminaison ne correspond au contrat. Si une collection vide est retournée, une trace d’avertissement est écrite.