내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

ChannelFactory 클래스

클라이언트에서 서비스 끝점으로 메시지를 보낼 때 사용하는 채널을 만들고 관리합니다.

네임스페이스:  System.ServiceModel
어셈블리:  System.ServiceModel(System.ServiceModel.dll)

public abstract class ChannelFactory : CommunicationObject, 
	IChannelFactory, ICommunicationObject, IDisposable

ChannelFactory 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원ChannelFactory ChannelFactory 클래스의 새 인스턴스를 초기화합니다.
위쪽

  이름설명
Public 속성이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Credentials팩터리에서 생성한 채널을 통해 클라이언트가 서비스 끝점과 통신할 때 사용하는 자격 증명을 가져옵니다.
Protected 속성이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원DefaultCloseTimeout닫기 작업을 완료하기 위해 제공되는 기본 시간 간격을 가져옵니다. (CommunicationObject.DefaultCloseTimeout을(를) 재정의함)
Protected 속성이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원DefaultOpenTimeout열기 작업을 완료하기 위해 제공되는 기본 시간 간격을 가져옵니다. (CommunicationObject.DefaultOpenTimeout을(를) 재정의함)
Public 속성이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Endpoint팩터리에서 만든 채널이 연결되는 서비스 끝점을 가져옵니다.
Protected 속성이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원IsDisposed통신 개체가 삭제되었는지 여부를 나타내는 값을 가져옵니다. (CommunicationObject에서 상속됨)
Public 속성이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원State통신 개체의 현재 상태를 나타내는 값을 가져옵니다. (CommunicationObject에서 상속됨)
Protected 속성이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원ThisLock상태 전환 중에 클래스 인스턴스를 보호하는 상호 배타적인 전용 잠금을 가져옵니다. (CommunicationObject에서 상속됨)
위쪽

  이름설명
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Abort통신 개체가 현재 상태에서 Closing 상태로 즉시 전환되도록 합니다. (CommunicationObject에서 상속됨)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원ApplyConfiguration지정된 구성 파일에서 제공한 동작 및 채널 팩터리의 서비스 끝점에 있는 동작을 통해 채널 팩터리를 초기화합니다.
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원BeginClose(AsyncCallback, Object)통신 개체를 닫는 비동기 작업을 시작합니다. (CommunicationObject에서 상속됨)
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원BeginClose(TimeSpan, AsyncCallback, Object)지정된 시간 제한 내에 통신 개체를 닫는 비동기 작업을 시작합니다. (CommunicationObject에서 상속됨)
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원BeginOpen(AsyncCallback, Object)통신 개체를 여는 비동기 작업을 시작합니다. (CommunicationObject에서 상속됨)
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원BeginOpen(TimeSpan, AsyncCallback, Object)지정된 시간 간격 내에 통신 개체를 여는 비동기 작업을 시작합니다. (CommunicationObject에서 상속됨)
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Close()통신 개체가 현재 상태에서 Closed 상태로 전환되도록 합니다. (CommunicationObject에서 상속됨)
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Close(TimeSpan)통신 개체가 지정된 시간 간격 내에 현재 상태에서 Closed 상태로 전환되도록 합니다. (CommunicationObject에서 상속됨)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원CreateDescription파생 클래스에서 구현되는 경우 채널 팩터리와 연결된 서비스 끝점에 대한 설명을 만듭니다.
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원CreateFactory팩터리의 현재 끝점에 대해 채널 팩터리를 생성합니다.
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원EndClose통신 개체를 닫는 비동기 작업을 완료합니다. (CommunicationObject에서 상속됨)
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원EndOpen통신 개체를 여는 비동기 작업을 완료합니다. (CommunicationObject에서 상속됨)
Protected 메서드Windows 스토어 앱용 .NET에서 지원EnsureOpened현재 채널 팩터리가 아직 열리지 않은 경우 이를 엽니다.
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Equals(Object) 지정한 개체가 현재 개체와 같은지 여부를 확인합니다. (Object에서 상속됨)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Fault통신 개체가 현재 상태에서 Faulted 상태로 전환되도록 합니다. (CommunicationObject에서 상속됨)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Finalize 개체가 가비지 수집자에서 회수되기 전에, 해당 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원GetCommunicationObjectType통신 개체의 형식을 가져옵니다. (CommunicationObject에서 상속됨)
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원GetHashCode기본 해시 함수로 작동합니다. (Object에서 상속됨)
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원GetProperty<T>요청한 형식화된 개체가 있으면 채널 스택의 해당 계층에서 그 개체를 반환하고, 그렇지 않으면 null을 반환합니다.
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Protected 메서드Windows 스토어 앱용 .NET에서 지원InitializeEndpoint(ServiceEndpoint)지정된 끝점을 사용하여 채널 팩터리의 서비스 끝점을 초기화합니다.
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원InitializeEndpoint(Binding, EndpointAddress)지정된 바인딩 및 주소를 사용하여 채널 팩터리의 서비스 끝점을 초기화합니다.
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원InitializeEndpoint(String, EndpointAddress)지정된 주소 및 구성을 사용하여 채널 팩터리의 서비스 끝점을 초기화합니다.
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원OnAbort현재 채널 팩터리의 내부 채널 팩터리를 종료합니다. (CommunicationObject.OnAbort()을(를) 재정의함)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원OnBeginClose연결된 상태 개체가 있는 현재 채널 팩터리의 내부 채널 팩터리에 대한 비동기 닫기 작업을 시작합니다. (CommunicationObject.OnBeginClose(TimeSpan, AsyncCallback, Object)을(를) 재정의함)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원OnBeginOpen연결된 상태 개체가 있는 현재 채널 팩터리의 내부 채널 팩터리에서 비동기 열기 작업을 시작합니다. (CommunicationObject.OnBeginOpen(TimeSpan, AsyncCallback, Object)을(를) 재정의함)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원OnClose작업 완료를 위해 지정된 시간 제한을 사용하여 내부 채널 팩터리에 대한 닫기를 호출합니다. (CommunicationObject.OnClose(TimeSpan)을(를) 재정의함)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원OnClosed통신 개체가 Closing 상태로 전환되는 중에 호출됩니다. (CommunicationObject에서 상속됨)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원OnClosing통신 개체가 Closing 상태로 전환되는 중에 호출됩니다. (CommunicationObject에서 상속됨)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원OnEndClose현재 채널 팩터리의 내부 채널 팩터리에 대한 비동기 닫기 작업을 완료합니다. (CommunicationObject.OnEndClose(IAsyncResult)을(를) 재정의함)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원OnEndOpen현재 채널 팩터리의 내부 채널 팩터리에 대한 비동기 열기 작업을 완료합니다. (CommunicationObject.OnEndOpen(IAsyncResult)을(를) 재정의함)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원OnFaulted통신 개체가 동기 오류 작업의 호출로 인해 Faulted 상태로 전환된 후 해당 통신 개체에 대한 처리를 삽입합니다. (CommunicationObject에서 상속됨)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원OnOpen작업 완료를 위해 지정된 시간 제한을 사용하여 현재 채널 팩터리의 내부 채널 팩터리에 대한 열기를 호출합니다. (CommunicationObject.OnOpen(TimeSpan)을(를) 재정의함)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원OnOpened채널 팩터리에 대한 ClientCredentials 개체의 읽기 전용 복사본을 초기화합니다. (CommunicationObject.OnOpened()을(를) 재정의함)
Protected 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원OnOpening현재 채널의 내부 채널 팩터리를 생성합니다. (CommunicationObject.OnOpening()을(를) 재정의함)
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Open()통신 개체가 Created 상태에서 Opened 상태로 전환되도록 합니다. (CommunicationObject에서 상속됨)
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Open(TimeSpan)통신 개체가 지정된 시간 간격 내에 Created 상태에서 Opened 상태로 전환되도록 합니다. (CommunicationObject에서 상속됨)
Protected 메서드ThrowIfDisposed통신 개체가 삭제되면 예외를 throw합니다. (CommunicationObject에서 상속됨)
Protected 메서드ThrowIfDisposedOrImmutable통신 개체의 State 속성이 Created 상태로 설정되지 않은 경우 예외를 throw합니다. (CommunicationObject에서 상속됨)
Protected 메서드ThrowIfDisposedOrNotOpen통신 개체가 Opened 상태가 아니면 예외를 throw합니다. (CommunicationObject에서 상속됨)
Public 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
위쪽

  이름설명
Public 이벤트이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Closed통신 개체가 Closed 상태로 전환될 때 발생합니다. (CommunicationObject에서 상속됨)
Public 이벤트이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Closing통신 개체가 Closing 상태로 전환될 때 발생합니다. (CommunicationObject에서 상속됨)
Public 이벤트이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Faulted통신 개체가 Faulted 상태로 전환될 때 발생합니다. (CommunicationObject에서 상속됨)
Public 이벤트이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Opened통신 개체가 Opened 상태로 전환될 때 발생합니다. (CommunicationObject에서 상속됨)
Public 이벤트이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Opening통신 개체가 Opening 상태로 전환될 때 발생합니다. (CommunicationObject에서 상속됨)
위쪽

  이름설명
명시적 인터페이스 구현Private 메서드이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원IDisposable.Dispose현재 채널 팩터리를 닫습니다.
위쪽

IChannelFactory 인터페이스를 구현하는 채널 팩터리 및 관련 채널은 일반적으로 통신 패턴의 개시자에서 사용됩니다. IChannelListener 인터페이스를 구현하는 수신기 팩터리 및 관련 수신기는 통신을 위해 채널을 수락하는 메커니즘을 제공합니다.

이 클래스는 채널 모델이 아니라 서비스 모델에 속해 있습니다. CreateFactory 메서드를 사용하면 서비스 끝점에 대한 IChannelFactory를 만들 수 있습니다. 메타데이터나 정책을 사용하지 않고 서비스에서 인터페이스 계약에 연결되는 클라이언트를 생성할 때 이 메서드를 사용합니다.

참고참고

ChannelFactory.Credentials.Windows.AllowedImpersonationLevel TokenImpersonationLevel.Anonymous로 설정하면 가장 수준과 관계없이 항상 익명 로그온이 수행됩니다.

이 클래스에서 파생된 Managed C++ 사용자 관련 참고 사항:

  • 소멸자가 아니라 (On)(Begin)Close 및/또는 OnAbort에 정리 코드를 입력하십시오.

  • 소멸자를 사용하지 마십시오. 소멸자를 사용하면 컴파일러에서 IDisposable을 자동으로 생성할 수 있습니다.

  • 비참조 멤버를 사용하지 마십시오. 비참조 멤버를 사용하면 컴파일러에서 IDisposable을 자동으로 생성할 수 있습니다.

  • 종료자를 사용하지 마십시오. 그러나 종료자를 포함하는 경우 자동으로 생성되는 IDisposable 동작을 에뮬레이트하기 위해 빌드 경고를 표시하지 않고 (On)(Begin)Close 및/또는 OnAbort에서 SuppressFinalize(Object) 및 해당 종료자를 호출해야 합니다.

동작을 프로그래밍 방식으로 추가할 경우 동작은 채널이 만들어지기 이전에 ChannelFactory의 적절한 Behaviors 속성에 추가됩니다. 코드 예제는 예제 단원을 참조하십시오.

다음 코드 예제에서는 팩터리에서 채널 개체를 만들기 전에 클라이언트 동작을 프로그래밍 방식으로 삽입하는 방법을 보여 줍니다.


public class Client
{
  public static void Main()
  {
    try
    {
      // Picks up configuration from the config file.
      ChannelFactory<ISampleServiceChannel> factory 
        = new ChannelFactory<ISampleServiceChannel>("WSHttpBinding_ISampleService");

      // Add the client side behavior programmatically to all created channels.
      factory.Endpoint.Behaviors.Add(new EndpointBehaviorMessageInspector());

      ISampleServiceChannel wcfClientChannel = factory.CreateChannel();

      // Making calls.
      Console.WriteLine("Enter the greeting to send: ");
      string greeting = Console.ReadLine();
      Console.WriteLine("The service responded: " + wcfClientChannel.SampleMethod(greeting));

      Console.WriteLine("Press ENTER to exit:");
      Console.ReadLine();

      // Done with service. 
      wcfClientChannel.Close();
      Console.WriteLine("Done!");
    }
    catch (TimeoutException timeProblem)
    {
      Console.WriteLine("The service operation timed out. " + timeProblem.Message);
      Console.Read();
    }
    catch (FaultException<SampleFault> fault)
    {
      Console.WriteLine("SampleFault fault occurred: {0}", fault.Detail.FaultMessage);
      Console.Read();
    }
    catch (CommunicationException commProblem)
    {
      Console.WriteLine("There was a communication problem. " + commProblem.Message);
      Console.Read();
    }
  }


.NET Framework

4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

이식 가능한 클래스 라이브러리

이식 가능한 클래스 라이브러리에서 지원

Windows 스토어 앱용 .NET

Windows 8에서 지원

Windows Phone 앱용 .NET

Windows Phone 8, Silverlight 8.1에서 지원

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

커뮤니티 추가 항목

추가
표시:
© 2015 Microsoft