Share via


MetadataResolver 클래스

정의

메타데이터를 검색하여 ServiceEndpoint 개체로 가져옵니다.

public ref class MetadataResolver abstract sealed
public static class MetadataResolver
type MetadataResolver = class
Public Class MetadataResolver
상속
MetadataResolver

예제

다음 코드 예제에서는 MetadataResolver 클래스를 사용하여 ServiceEndpoint 개체 컬렉션으로 메타데이터를 반환하는 방법을 보여 줍니다. 이렇게 반환된 개체는 서비스 인스턴스에 연결하는 데 사용됩니다.

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

다음 코드 예제에서는 WS-Transfer 대신 HTTP GET 요청을 사용하여 MetadataResolver를 통해 메타데이터를 다운로드한 다음 ServiceEndpoint 개체 컬렉션으로 반환하는 방법을 보여 줍니다.

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

설명

메타데이터에서 서비스에 대한 엔드포인트를 신속하게 가져오려면 MetadataResolver 클래스를 사용합니다. 이 클래스는 메타데이터를 다운로드하여 ServiceEndpoint 개체로 변환합니다. 메타데이터를 다운로드한 후 해당 정보를 System.ServiceModel.Description.MetadataSet으로 처리하려면 System.ServiceModel.Description.MetadataExchangeClient를 참조하십시오.

메서드

BeginResolve(IEnumerable<ContractDescription>, EndpointAddress, AsyncCallback, Object)

지정된 주소와 비동기 상태 및 대리자를 사용하여 지정된 계약에 대한 ServiceEndpoint 개체로 메타데이터 주소를 확인하는 비동기 호출을 시작합니다.

BeginResolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient, AsyncCallback, Object)

지정된 주소, ServiceEndpoint, 비동기 상태 및 대리자를 사용하여 지정된 계약에 대한 MetadataExchangeClient 개체로 메타데이터 주소를 확인하는 비동기 호출을 시작합니다.

BeginResolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, AsyncCallback, Object)

지정된 주소, ServiceEndpoint 값, 비동기 상태 및 대리자를 사용하여 지정된 계약에 대한 MetadataExchangeClientMode 개체로 메타데이터 주소를 확인하는 비동기 호출을 시작합니다.

BeginResolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient, AsyncCallback, Object)

지정된 주소, ServiceEndpoint, MetadataExchangeClient, 비동기 상태 및 대리자를 사용하여 지정된 계약에 대한 MetadataExchangeClientMode 개체로 메타데이터 주소를 확인하는 비동기 호출을 시작합니다.

BeginResolve(Type, EndpointAddress, AsyncCallback, Object)

지정된 주소와 비동기 상태 및 대리자를 사용하여 지정된 계약에 대한 ServiceEndpoint 개체로 메타데이터 주소를 확인하는 비동기 호출을 시작합니다.

BeginResolve(Type, Uri, MetadataExchangeClientMode, AsyncCallback, Object)

지정된 주소, ServiceEndpoint, 비동기 상태 및 대리자를 사용하여 지정된 계약에 대한 MetadataExchangeClientMode 개체로 메타데이터 주소를 확인하는 비동기 호출을 시작합니다.

EndResolve(IAsyncResult)

비동기 호출을 완료하여 메타데이터를 엔드포인트 컬렉션으로 확인합니다.

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

지정된 메타데이터 주소를 사용하여 지정된 계약에 대한 ServiceEndpoint 개체로 메타데이터 주소를 확인합니다.

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

지정된 메타데이터 주소 및 ServiceEndpoint를 사용하여 지정된 계약에 대한 MetadataExchangeClient 개체로 메타데이터 주소를 확인합니다.

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

지정된 주소 및 전송 모드를 사용하여 지정된 계약에 대한 ServiceEndpoint 개체로 메타데이터 주소를 확인합니다.

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

지정된 주소, 전송 모드 및 전송 클라이언트를 사용하여 지정된 계약에 대한 ServiceEndpoint 개체로 메타데이터 주소를 확인합니다.

Resolve(Type, EndpointAddress)

메타데이터 주소를 다운로드한 후 지정된 주소의 지정된 계약에 대한 ServiceEndpoint 개체 컬렉션으로 확인합니다.

Resolve(Type, Uri, MetadataExchangeClientMode)

지정된 주소 및 전송 모드를 사용하여 지정된 계약에 대한 ServiceEndpoint 개체로 메타데이터 주소를 확인합니다.

적용 대상