MetadataResolver.Resolve Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.
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.
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.
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.