Langue

MetadataResolver.Resolve Méthode

Définition

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
MetadataExchangeClientMode

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
MetadataExchangeClientMode

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
MetadataExchangeClientMode

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.

S’applique à