MetadataResolver.Resolve Méthode

Définition

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

ServiceEndpointCollection

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

ServiceEndpointCollection

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

ServiceEndpointCollection

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
MetadataExchangeClientMode

Mode de récupération.

Retours

ServiceEndpointCollection

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
MetadataExchangeClientMode

Mode de récupération.

Retours

ServiceEndpointCollection

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
MetadataExchangeClientMode

Mode de récupération.

client
MetadataExchangeClient

MetadataExchangeClient utilisé pour récupérer les métadonnées.

Retours

ServiceEndpointCollection

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.

S’applique à