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.

Namespace:   System.ServiceModel.Description
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.

System_CAPS_noteNote

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.

.NET Framework
Available since 3.0
Return to top
Show: