MetadataResolver.Resolve Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Lädt eine Metadatenadresse in die ServiceEndpoint Objekte für diesen Dienst herunter und löst sie auf.
Überlädt
| Name | Beschreibung |
|---|---|
| Resolve(IEnumerable<ContractDescription>, EndpointAddress) |
Löst eine Metadatenadresse in die ServiceEndpoint Objekte für die angegebenen Verträge mithilfe der angegebenen Metadatenadresse auf. |
| Resolve(Type, EndpointAddress) |
Lädt eine Metadatenadresse in eine Auflistung von ServiceEndpoint Objekten für einen bestimmten Vertrag an einer angegebenen Adresse herunter und löst sie auf. |
| Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient) |
Löst eine Metadatenadresse in die ServiceEndpoint Objekte für die angegebenen Verträge mithilfe der angegebenen Metadatenadresse und MetadataExchangeClient. |
| Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode) |
Löst eine Metadatenadresse in die Objekte für die ServiceEndpoint angegebenen Verträge mithilfe des angegebenen Adress- und Übertragungsmodus auf. |
| Resolve(Type, Uri, MetadataExchangeClientMode) |
Löst eine Metadatenadresse in die ServiceEndpoint Objekte für den angegebenen Vertrag mithilfe des angegebenen Adress- und Übertragungsmodus auf. |
| Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient) |
Löst eine Metadatenadresse in die ServiceEndpoint Objekte für die angegebenen Verträge mithilfe der angegebenen Adresse, des Übertragungsmodus und des Übertragungsclients auf. |
Hinweise
Um Metadaten herunterzuladen, aber die Informationen nicht in ServiceEndpoint Objekte aufzulösen, verwenden Sie die System.ServiceModel.Description.MetadataExchangeClient direkt.
Für alle synchronen und asynchronen Resolve Methoden wird eine leere Auflistung zurückgegeben, wenn keine Endpunkte importiert wurden oder wenn keine Endpunkte mit dem Vertrag übereinstimmen. Wenn eine leere Auflistung zurückgegeben wird, wird eine Warnungsablaufverfolgung geschrieben.
Resolve(IEnumerable<ContractDescription>, EndpointAddress)
Löst eine Metadatenadresse in die ServiceEndpoint Objekte für die angegebenen Verträge mithilfe der angegebenen Metadatenadresse auf.
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
Parameter
- contracts
- IEnumerable<ContractDescription>
Die Verträge, für die Metadaten heruntergeladen und aufgelöst werden sollen.
- address
- EndpointAddress
Die Metadatenadresse.
Gibt zurück
Eine Auflistung von ServiceEndpoint Objekten für den angegebenen Vertrag.
Ausnahmen
Die Adress- oder Vertragssammlung lautet null.
contracts ist leer, mindestens ein Mitglied von contracts ist NULL oder contracts enthält mehrere Verträge mit demselben Namen und Namespace.
Hinweise
Die Standardeinstellungen für das System.ServiceModel.Description.MetadataExchangeClient Abrufen der Metadaten werden verwendet, und der Standardwert System.ServiceModel.Description.MetadataExchangeClientMode ist MetadataExchangeClientMode.MetadataExchange.
Um Metadaten herunterzuladen, aber die Informationen nicht in ServiceEndpoint Objekte aufzulösen, verwenden Sie die System.ServiceModel.Description.MetadataExchangeClient direkt.
Note
Eine leere Auflistung wird zurückgegeben, wenn keine Endpunkte importiert wurden oder wenn keine Endpunkte mit dem Vertrag übereinstimmen. Wenn eine leere Auflistung zurückgegeben wird, wird eine Warnungsablaufverfolgung geschrieben.
Gilt für:
Resolve(Type, EndpointAddress)
Lädt eine Metadatenadresse in eine Auflistung von ServiceEndpoint Objekten für einen bestimmten Vertrag an einer angegebenen Adresse herunter und löst sie auf.
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
Parameter
- contract
- Type
Die Verträge, für die Metadaten heruntergeladen und aufgelöst werden sollen.
- address
- EndpointAddress
Die Metadatenadresse.
Gibt zurück
Eine Auflistung von ServiceEndpoint Objekten für den angegebenen Vertrag.
Ausnahmen
Die Adresse oder der Vertrag lautet null.
Beispiele
Das folgende Codebeispiel zeigt die Verwendung der MetadataResolver Klasse, um Metadaten als Auflistung von ServiceEndpoint Objekten zurückzugeben, die dann zum Herstellen einer Verbindung mit einer Dienstinstanz verwendet werden.
// 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();
}
}
Hinweise
Verwenden Sie die Resolve Methode, um den Vertrag und die Metadatenadresse anzugeben, die beim Herunterladen und Auflösen von Metadaten verwendet werden soll.
Die Standardeinstellungen für das System.ServiceModel.Description.MetadataExchangeClient Abrufen der Metadaten werden verwendet, und der Standardwert System.ServiceModel.Description.MetadataExchangeClientMode ist MetadataExchangeClientMode.MetadataExchange.
Um Metadaten herunterzuladen, aber die Informationen nicht in ServiceEndpoint Objekte aufzulösen, verwenden Sie die System.ServiceModel.Description.MetadataExchangeClient direkt.
Note
Eine leere Auflistung wird zurückgegeben, wenn keine Endpunkte importiert wurden oder wenn keine Endpunkte mit dem Vertrag übereinstimmen. Wenn eine leere Auflistung zurückgegeben wird, wird eine Warnungsablaufverfolgung geschrieben.
Für diese Methode müssen Sie einen Vertragstyp angeben. Sie können den Vertrag angeben, indem Sie die Dienstschnittstelle im Clientcode deklarieren oder einen WCF-Client verwenden, der von Svcutil.exegeneriert wird. Wenn sich die Schnittstelle ändert (z. B. einen neuen Vorgang hinzufügen), müssen Sie die Schnittstelle im Clientcode aktualisieren oder einen neuen WCF-Client generieren. Wenn Sie dies nicht tun, wird eine Ausnahme ausgelöst. Beispielsweise verfügen Sie über einen Dienst, der einen Dienstvertrag namens "ICalculator" implementiert, der Add(), Sub(), Mult() und Div() definiert. Sie erstellen eine Clientanwendung und generieren WCF-Client. Anschließend fügen Sie eine Methode zu ICalculator namens Echo() hinzu. Wenn Sie dann eine Anwendung schreiben, die aufruft Resolve(Type, EndpointAddress) , ohne einen neuen WCF-Client zu generieren, erhalten Sie die folgende Ausnahme.
Unhandled Exception: System.ServiceModel.Description.WsdlImporter+WsdlImportException: Cannot locate operation Echo in Contract ICalculator.
Gilt für:
Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)
Löst eine Metadatenadresse in die ServiceEndpoint Objekte für die angegebenen Verträge mithilfe der angegebenen Metadatenadresse und 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
Parameter
- contracts
- IEnumerable<ContractDescription>
Die Verträge, für die Metadaten heruntergeladen und aufgelöst werden sollen.
- address
- EndpointAddress
Die Metadatenadresse.
- client
- MetadataExchangeClient
Wird MetadataExchangeClient verwendet, um die Metadaten abzurufen.
Gibt zurück
Eine Auflistung von ServiceEndpoint Objekten für den angegebenen Vertrag.
Ausnahmen
Die Adresse, die Vertragssammlung oder der Kunde ist null.
contracts ist leer, mindestens ein Mitglied von contracts ist NULL oder contracts enthält mehrere Verträge mit demselben Namen und Namespace.
Hinweise
Der Standardwert von System.ServiceModel.Description.MetadataExchangeClientMode lautet MetadataExchangeClientMode.MetadataExchange.
Um Metadaten herunterzuladen, aber die Informationen nicht in ServiceEndpoint Objekte aufzulösen, verwenden Sie die System.ServiceModel.Description.MetadataExchangeClient direkt.
Note
Eine leere Auflistung wird zurückgegeben, wenn keine Endpunkte importiert wurden oder wenn keine Endpunkte mit dem Vertrag übereinstimmen. Wenn eine leere Auflistung zurückgegeben wird, wird eine Warnungsablaufverfolgung geschrieben.
Gilt für:
Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)
Löst eine Metadatenadresse in die Objekte für die ServiceEndpoint angegebenen Verträge mithilfe des angegebenen Adress- und Übertragungsmodus auf.
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
Parameter
- contracts
- IEnumerable<ContractDescription>
Die Verträge, für die Metadaten heruntergeladen und aufgelöst werden sollen.
- address
- Uri
Die Metadatenadresse.
Der Modus des Abrufs.
Gibt zurück
Eine Auflistung von ServiceEndpoint Objekten für den angegebenen Vertrag.
Ausnahmen
Die Adress- oder Vertragssammlung lautet null.
contracts ist leer, mindestens ein Mitglied von contracts ist NULL oder contracts enthält mehrere Verträge mit demselben Namen und Namespace.
Hinweise
Die Standardeinstellungen für das System.ServiceModel.Description.MetadataExchangeClient Abrufen der Metadaten werden verwendet.
Um Metadaten herunterzuladen, aber die Informationen nicht in ServiceEndpoint Objekte aufzulösen, verwenden Sie die System.ServiceModel.Description.MetadataExchangeClient direkt.
Note
Eine leere Auflistung wird zurückgegeben, wenn keine Endpunkte importiert wurden oder wenn keine Endpunkte mit dem Vertrag übereinstimmen. Wenn eine leere Auflistung zurückgegeben wird, wird eine Warnungsablaufverfolgung geschrieben.
Gilt für:
Resolve(Type, Uri, MetadataExchangeClientMode)
Löst eine Metadatenadresse in die ServiceEndpoint Objekte für den angegebenen Vertrag mithilfe des angegebenen Adress- und Übertragungsmodus auf.
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
Parameter
- contract
- Type
Der Vertrag, für den Metadaten heruntergeladen und aufgelöst werden sollen.
- address
- Uri
Die Metadatenadresse.
Der Modus des Abrufs.
Gibt zurück
Eine Auflistung von ServiceEndpoint Objekten für den angegebenen Vertrag.
Ausnahmen
Die Adresse oder der Vertrag lautet null.
Beispiele
Das folgende Codebeispiel zeigt die Verwendung der MetadataResolver Zum Herunterladen und Zurückgeben von Metadaten als Sammlung von ServiceEndpoint Objekten mithilfe einer HTTP GET-Anforderung anstelle von 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();
}
}
Hinweise
Verwenden Sie die Resolve Methode, um einen Vertrag und eine Adresse sowie den zu verwendenden Downloadmechanismus anzugeben.
Die Standardeinstellungen für das System.ServiceModel.Description.MetadataExchangeClient Abrufen der Metadaten werden verwendet.
Um Metadaten herunterzuladen, aber die Informationen nicht in ServiceEndpoint Objekte aufzulösen, verwenden Sie die System.ServiceModel.Description.MetadataExchangeClient direkt.
Note
Eine leere Auflistung wird zurückgegeben, wenn keine Endpunkte importiert wurden oder wenn keine Endpunkte mit dem Vertrag übereinstimmen. Wenn eine leere Auflistung zurückgegeben wird, wird eine Warnungsablaufverfolgung geschrieben.
Gilt für:
Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient)
Löst eine Metadatenadresse in die ServiceEndpoint Objekte für die angegebenen Verträge mithilfe der angegebenen Adresse, des Übertragungsmodus und des Übertragungsclients auf.
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
Parameter
- contracts
- IEnumerable<ContractDescription>
Die Verträge, für die Metadaten heruntergeladen und aufgelöst werden sollen.
- address
- Uri
Die Metadatenadresse.
Der Modus des Abrufs.
- client
- MetadataExchangeClient
Wird MetadataExchangeClient verwendet, um die Metadaten abzurufen.
Gibt zurück
Eine Auflistung von ServiceEndpoint Objekten für den angegebenen Vertrag.
Ausnahmen
Die Adresse, die Vertragssammlung oder der Kunde ist null.
contracts ist leer, mindestens ein Mitglied von contracts ist NULL oder contracts enthält mehrere Verträge mit demselben Namen und Namespace.
Hinweise
Um Metadaten herunterzuladen, aber die Informationen nicht in ServiceEndpoint Objekte aufzulösen, verwenden Sie die System.ServiceModel.Description.MetadataExchangeClient direkt.
Note
Eine leere Auflistung wird zurückgegeben, wenn keine Endpunkte importiert wurden oder wenn keine Endpunkte mit dem Vertrag übereinstimmen. Wenn eine leere Auflistung zurückgegeben wird, wird eine Warnungsablaufverfolgung geschrieben.