MetadataResolver::BeginResolve Method (Type^, EndpointAddress^, AsyncCallback^, Object^)
Begins an asynchronous call that resolves a metadata address into the ServiceEndpoint objects for the specified contract using the specified address and asynchronous state and delegate.
Assembly: System.ServiceModel (in System.ServiceModel.dll)
public: static IAsyncResult^ BeginResolve( Type^ contract, EndpointAddress^ address, AsyncCallback^ callback, Object^ asyncState )
Parameters
- contract
-
Type:
System::Type^
The contract for which to download and resolve metadata.
- address
-
Type:
System.ServiceModel::EndpointAddress^
The metadata address.
- callback
-
Type:
System::AsyncCallback^
The asynchronous callback delegate invoked when the call is complete.
- asyncState
-
Type:
System::Object^
The state associated with the asynchronous call.
Return Value
Type: System::IAsyncResult^The IAsyncResult that references the asynchronous resolve operation.
| Exception | Condition |
|---|---|
| ArgumentNullException | The address, contract, or callback is null. |
The default settings on the System.ServiceModel.Description::MetadataExchangeClient are used to retrieve the metadata and the default System.ServiceModel.Description::MetadataExchangeClientMode is MetadataExchangeClientMode::MetadataExchange.
To download metadata but not resolve the information into ServiceEndpoint objects, use the System.ServiceModel.Description::MetadataExchangeClient directly.
Note |
|---|
An empty collection is returned if no endpoints were imported or if no endpoints matched the contract. If an empty collection is returned, a warning trace is written. |
This method requires that you specify a contract type. You can specify the contract by declaring the service interface in the client code or by using a WCF client generated by Svcutil.exe. If the interface changes (adding a new operation, for example) you must update the interface in the client code or generate a new WCF client. If you do not, an exception is thrown. For example, you have a service that implements a service contract called ICalculator that defines Add(), Sub(), Mult(), and Div(). You create a client application and generate WCF client. You then add a method to ICalculator called Echo(). If you then write an application that calls Resolve(Type^, EndpointAddress^) without generating a new WCF client you get the following exception.
Unhandled Exception: System.ServiceModel.Description.WsdlImporter+WsdlImportException: Cannot locate operation Echo in Contract ICalculator.
Available since 3.0
