MetadataResolver.Resolve Methode

Definitie

Hiermee wordt een metagegevensadres gedownload en omgezet in de ServiceEndpoint objecten voor die service.

Overloads

Name Description
Resolve(IEnumerable<ContractDescription>, EndpointAddress)

Hiermee wordt een metagegevensadres omgezet in de ServiceEndpoint objecten voor de opgegeven contracten met behulp van het opgegeven metagegevensadres.

Resolve(Type, EndpointAddress)

Hiermee wordt een metagegevensadres gedownload en omgezet in een verzameling ServiceEndpoint objecten voor een opgegeven contract op een opgegeven adres.

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

Hiermee wordt een metagegevensadres omgezet in de ServiceEndpoint objecten voor de opgegeven contracten met behulp van het opgegeven metagegevensadres en MetadataExchangeClient.

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

Hiermee wordt een metagegevensadres omgezet in de ServiceEndpoint objecten voor de opgegeven contracten met behulp van het opgegeven adres en de overdrachtsmodus.

Resolve(Type, Uri, MetadataExchangeClientMode)

Hiermee wordt een metagegevensadres omgezet in de ServiceEndpoint objecten voor het opgegeven contract met behulp van het opgegeven adres en de overdrachtsmodus.

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient)

Hiermee wordt een metagegevensadres omgezet in de ServiceEndpoint objecten voor de opgegeven contracten met behulp van het opgegeven adres, de overdrachtsmodus en de overdrachtsclient.

Opmerkingen

Als u metagegevens wilt downloaden, maar de informatie niet wilt omzetten in ServiceEndpoint objecten, gebruikt u het System.ServiceModel.Description.MetadataExchangeClient rechtstreeks.

Voor alle synchrone en asynchrone Resolve methoden wordt een lege verzameling geretourneerd als er geen eindpunten zijn geïmporteerd of als er geen eindpunten overeenkomen met het contract. Als een lege verzameling wordt geretourneerd, wordt er een waarschuwingstracering geschreven.

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

Hiermee wordt een metagegevensadres omgezet in de ServiceEndpoint objecten voor de opgegeven contracten met behulp van het opgegeven metagegevensadres.

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

Parameters

contracts
IEnumerable<ContractDescription>

De contracten waarvoor metagegevens moeten worden gedownload en omgezet.

address
EndpointAddress

Het adres van de metagegevens.

Retouren

Een verzameling ServiceEndpoint objecten voor het opgegeven contract.

Uitzonderingen

Het adres of de verzameling contracten is null.

contracts is leeg, ten minste één lid is contracts null of contracts bevat meer dan één contract met dezelfde naam en naamruimte.

Opmerkingen

De standaardinstellingen op de pagina System.ServiceModel.Description.MetadataExchangeClient worden gebruikt om de metagegevens op te halen en de standaardwaarde System.ServiceModel.Description.MetadataExchangeClientMode is MetadataExchangeClientMode.MetadataExchange.

Als u metagegevens wilt downloaden, maar de informatie niet wilt omzetten in ServiceEndpoint objecten, gebruikt u het System.ServiceModel.Description.MetadataExchangeClient rechtstreeks.

Note

Er wordt een lege verzameling geretourneerd als er geen eindpunten zijn geïmporteerd of als er geen eindpunten overeenkomen met het contract. Als een lege verzameling wordt geretourneerd, wordt er een waarschuwingstracering geschreven.

Van toepassing op

Resolve(Type, EndpointAddress)

Hiermee wordt een metagegevensadres gedownload en omgezet in een verzameling ServiceEndpoint objecten voor een opgegeven contract op een opgegeven adres.

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

Parameters

contract
Type

De contracten waarvoor metagegevens moeten worden gedownload en omgezet.

address
EndpointAddress

Het adres van de metagegevens.

Retouren

Een verzameling ServiceEndpoint objecten voor het opgegeven contract.

Uitzonderingen

Het adres of het contract is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe de MetadataResolver klasse metagegevens retourneert als een verzameling ServiceEndpoint objecten die vervolgens worden gebruikt om verbinding te maken met een service-exemplaar.

// 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();
    }
}

Opmerkingen

Gebruik de Resolve methode om het contract en het metagegevensadres op te geven dat moet worden gebruikt bij het downloaden en omzetten van metagegevens.

De standaardinstellingen op de pagina System.ServiceModel.Description.MetadataExchangeClient worden gebruikt om de metagegevens op te halen en de standaardwaarde System.ServiceModel.Description.MetadataExchangeClientMode is MetadataExchangeClientMode.MetadataExchange.

Als u metagegevens wilt downloaden, maar de informatie niet wilt omzetten in ServiceEndpoint objecten, gebruikt u het System.ServiceModel.Description.MetadataExchangeClient rechtstreeks.

Note

Er wordt een lege verzameling geretourneerd als er geen eindpunten zijn geïmporteerd of als er geen eindpunten overeenkomen met het contract. Als een lege verzameling wordt geretourneerd, wordt er een waarschuwingstracering geschreven.

Voor deze methode moet u een contracttype opgeven. U kunt het contract opgeven door de service-interface in de clientcode te declareren of door een WCF-client te gebruiken die is gegenereerd door Svcutil.exe. Als de interface verandert (bijvoorbeeld een nieuwe bewerking toevoegen), moet u de interface in de clientcode bijwerken of een nieuwe WCF-client genereren. Als u dat niet doet, wordt er een uitzondering gegenereerd. U hebt bijvoorbeeld een service waarmee een servicecontract met de naam ICalculator wordt geïmplementeerd dat Add(), Sub(), Mult() en Div() definieert. U maakt een clienttoepassing en genereert WCF-client. Vervolgens voegt u een methode toe aan ICalculator met de naam Echo(). Als u vervolgens een toepassing schrijft die aanroept Resolve(Type, EndpointAddress) zonder een nieuwe WCF-client te genereren, krijgt u de volgende uitzondering.

Unhandled Exception: System.ServiceModel.Description.WsdlImporter+WsdlImportException: Cannot locate operation Echo in Contract ICalculator.

Van toepassing op

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

Hiermee wordt een metagegevensadres omgezet in de ServiceEndpoint objecten voor de opgegeven contracten met behulp van het opgegeven metagegevensadres en 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

Parameters

contracts
IEnumerable<ContractDescription>

De contracten waarvoor metagegevens moeten worden gedownload en omgezet.

address
EndpointAddress

Het adres van de metagegevens.

client
MetadataExchangeClient

De MetadataExchangeClient metagegevens worden opgehaald.

Retouren

Een verzameling ServiceEndpoint objecten voor het opgegeven contract.

Uitzonderingen

Het adres, de verzameling contracten of de klant is null.

contracts is leeg, ten minste één lid is contracts null of contracts bevat meer dan één contract met dezelfde naam en naamruimte.

Opmerkingen

De standaardwaarde System.ServiceModel.Description.MetadataExchangeClientMode is MetadataExchangeClientMode.MetadataExchange.

Als u metagegevens wilt downloaden, maar de informatie niet wilt omzetten in ServiceEndpoint objecten, gebruikt u het System.ServiceModel.Description.MetadataExchangeClient rechtstreeks.

Note

Er wordt een lege verzameling geretourneerd als er geen eindpunten zijn geïmporteerd of als er geen eindpunten overeenkomen met het contract. Als een lege verzameling wordt geretourneerd, wordt er een waarschuwingstracering geschreven.

Van toepassing op

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

Hiermee wordt een metagegevensadres omgezet in de ServiceEndpoint objecten voor de opgegeven contracten met behulp van het opgegeven adres en de overdrachtsmodus.

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

Parameters

contracts
IEnumerable<ContractDescription>

De contracten waarvoor metagegevens moeten worden gedownload en omgezet.

address
Uri

Het adres van de metagegevens.

mode
MetadataExchangeClientMode

De ophaalmodus.

Retouren

Een verzameling ServiceEndpoint objecten voor het opgegeven contract.

Uitzonderingen

Het adres of de verzameling contracten is null.

contracts is leeg, ten minste één lid is contracts null of contracts bevat meer dan één contract met dezelfde naam en naamruimte.

Opmerkingen

De standaardinstellingen op de pagina System.ServiceModel.Description.MetadataExchangeClient worden gebruikt om de metagegevens op te halen.

Als u metagegevens wilt downloaden, maar de informatie niet wilt omzetten in ServiceEndpoint objecten, gebruikt u het System.ServiceModel.Description.MetadataExchangeClient rechtstreeks.

Note

Er wordt een lege verzameling geretourneerd als er geen eindpunten zijn geïmporteerd of als er geen eindpunten overeenkomen met het contract. Als een lege verzameling wordt geretourneerd, wordt er een waarschuwingstracering geschreven.

Van toepassing op

Resolve(Type, Uri, MetadataExchangeClientMode)

Hiermee wordt een metagegevensadres omgezet in de ServiceEndpoint objecten voor het opgegeven contract met behulp van het opgegeven adres en de overdrachtsmodus.

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

Parameters

contract
Type

Het contract waarvoor metagegevens moeten worden gedownload en omgezet.

address
Uri

Het adres van de metagegevens.

mode
MetadataExchangeClientMode

De ophaalmodus.

Retouren

Een verzameling ServiceEndpoint objecten voor het opgegeven contract.

Uitzonderingen

Het adres of contract is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u MetadataResolver metagegevens kunt downloaden en retourneren als een verzameling objecten met behulp van een HTTP GET-aanvraag in plaats van ServiceEndpoint 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();
    }
}

Opmerkingen

Gebruik de Resolve methode om een contract en adres en het downloadmechanisme op te geven dat moet worden gebruikt.

De standaardinstellingen op de pagina System.ServiceModel.Description.MetadataExchangeClient worden gebruikt om de metagegevens op te halen.

Als u metagegevens wilt downloaden, maar de informatie niet wilt omzetten in ServiceEndpoint objecten, gebruikt u het System.ServiceModel.Description.MetadataExchangeClient rechtstreeks.

Note

Er wordt een lege verzameling geretourneerd als er geen eindpunten zijn geïmporteerd of als er geen eindpunten overeenkomen met het contract. Als een lege verzameling wordt geretourneerd, wordt er een waarschuwingstracering geschreven.

Van toepassing op

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient)

Hiermee wordt een metagegevensadres omgezet in de ServiceEndpoint objecten voor de opgegeven contracten met behulp van het opgegeven adres, de overdrachtsmodus en de overdrachtsclient.

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

Parameters

contracts
IEnumerable<ContractDescription>

De contracten waarvoor metagegevens moeten worden gedownload en omgezet.

address
Uri

Het adres van de metagegevens.

mode
MetadataExchangeClientMode

De ophaalmodus.

client
MetadataExchangeClient

De MetadataExchangeClient metagegevens worden opgehaald.

Retouren

Een verzameling ServiceEndpoint objecten voor het opgegeven contract.

Uitzonderingen

Het adres, de verzameling contracten of de klant is null.

contracts is leeg, ten minste één lid is contracts null of contracts bevat meer dan één contract met dezelfde naam en naamruimte.

Opmerkingen

Als u metagegevens wilt downloaden, maar de informatie niet wilt omzetten in ServiceEndpoint objecten, gebruikt u het System.ServiceModel.Description.MetadataExchangeClient rechtstreeks.

Note

Er wordt een lege verzameling geretourneerd als er geen eindpunten zijn geïmporteerd of als er geen eindpunten overeenkomen met het contract. Als een lege verzameling wordt geretourneerd, wordt er een waarschuwingstracering geschreven.

Van toepassing op