DuplexChannelFactory<TChannel> 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
클라이언트가 서비스 엔드포인트에서 메시지를 보내고 받는 데 사용하는 다양한 형식의 이중 채널을 만들고 관리하는 방법을 제공합니다.
generic <typename TChannel>
public ref class DuplexChannelFactory : System::ServiceModel::ChannelFactory<TChannel>
public class DuplexChannelFactory<TChannel> : System.ServiceModel.ChannelFactory<TChannel>
type DuplexChannelFactory<'Channel> = class
inherit ChannelFactory<'Channel>
Public Class DuplexChannelFactory(Of TChannel)
Inherits ChannelFactory(Of TChannel)
형식 매개 변수
- TChannel
채널 팩터리에서 생성하는 채널의 유형입니다.
- 상속
- 파생
예제
다음 샘플에서는 채널 팩터리를 만들고 이를 사용하여 채널을 만들고 관리하는 방법을 보여 줍니다.
// Construct InstanceContext to handle messages on the callback interface.
// An instance of ChatApp is created and passed to the InstanceContext.
InstanceContext site = new InstanceContext(new ChatApp());
// Create the participant with the given endpoint configuration.
// Each participant opens a duplex channel to the mesh.
// Participant is an instance of the chat application that has opened a channel to the mesh.
using (DuplexChannelFactory<IChatChannel> cf =
new DuplexChannelFactory<IChatChannel>(site,"ChatEndpoint"))
{
X509Certificate2 issuer = GetCertificate(
StoreName.CertificateAuthority,
StoreLocation.CurrentUser, "CN=" + issuerName,
X509FindType.FindBySubjectDistinguishedName);
cf.Credentials.Peer.Certificate =
GetCertificate(StoreName.My,
StoreLocation.CurrentUser,
"CN=" + member,
X509FindType.FindBySubjectDistinguishedName);
cf.Credentials.Peer.PeerAuthentication.CertificateValidationMode =
X509CertificateValidationMode.Custom;
cf.Credentials.Peer.PeerAuthentication.CustomCertificateValidator =
new IssuerBasedValidator();
using (IChatChannel participant = cf.CreateChannel())
{
// Retrieve the PeerNode associated with the participant and register for online/offline events.
// PeerNode represents a node in the mesh. Mesh is the named collection of connected nodes.
IOnlineStatus ostat = participant.GetProperty<IOnlineStatus>();
ostat.Online += new EventHandler(OnOnline);
ostat.Offline += new EventHandler(OnOffline);
Console.WriteLine("{0} is ready", member);
Console.WriteLine("Press <ENTER> to send the chat message.");
// Announce self to other participants.
participant.Join(member);
Console.ReadLine();
participant.Chat(member, "Hi there - I am chatting");
Console.WriteLine("Press <ENTER> to terminate this instance of chat.");
Console.ReadLine();
// Leave the mesh and close the client.
participant.Leave(member);
}
}
설명
이중 채널을 사용하면 클라이언트와 서버가 서로 독립적으로 통신하여 서로 호출을 시작할 수 있습니다. 이중 서비스는 클라이언트 엔드포인트에 메시지를 보내 이벤트와 유사한 동작을 제공할 수 있습니다. 이중 통신은 클라이언트가 서비스와 함께 세션을 설정하고 서비스가 클라이언트에 메시지를 다시 보낼 수 있는 채널을 서비스에 제공하는 경우에 발생합니다. 다양한 CreateChannel 메서드를 사용하여 이러한 이중 채널을 만듭니다. 이중 메시지 패턴은 WCF(Windows Communication Foundation) 서비스에서 사용할 수 있는 세 가지 메시지 패턴 중 하나입니다. 다른 두 메시지 패턴은 단방향 및 요청-회신입니다.
클라이언트가 서비스에 다시 연결할 수 있도록 하는 이중 서비스에 대한 일반적인 내용은 Duplex Services참조하세요. 채널 팩터리를 사용하여 WCF(Windows Communication Foundation) 클라이언트 애플리케이션을 작성하는 단계의 개요 및 설명은 방법: ChannelFactory사용하세요. 이중 메시징 패턴을 사용하는 서비스에 액세스하기 위해 콜백 인터페이스를 구현하는 클라이언트 클래스에서 WCF(Windows Communication Foundation) 클라이언트를 만드는 방법을 설명하는 절차는 방법: 이중 계약사용하여 서비스에 액세스합니다.
생성자
속성
Credentials |
팩터리에서 생성된 채널을 통해 서비스 엔드포인트를 통신하기 위해 클라이언트에서 사용하는 자격 증명을 가져옵니다. (다음에서 상속됨 ChannelFactory) |
DefaultCloseTimeout |
닫기 작업을 완료하기 위해 제공되는 기본 시간 간격을 가져옵니다. (다음에서 상속됨 ChannelFactory) |
DefaultOpenTimeout |
열기 작업을 완료하기 위해 제공되는 기본 시간 간격을 가져옵니다. (다음에서 상속됨 ChannelFactory) |
Endpoint |
팩터리에서 생성된 채널이 연결되는 서비스 엔드포인트를 가져옵니다. (다음에서 상속됨 ChannelFactory) |
IsDisposed |
통신 개체가 삭제되었는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 CommunicationObject) |
State |
통신 개체의 현재 상태를 나타내는 값을 가져옵니다. (다음에서 상속됨 CommunicationObject) |
ThisLock |
상태 전환 중에 클래스 인스턴스를 보호하는 상호 배타적 잠금을 가져옵니다. (다음에서 상속됨 CommunicationObject) |
메서드
Abort() |
통신 개체가 현재 상태에서 닫는 상태로 즉시 전환되도록 합니다. (다음에서 상속됨 CommunicationObject) |
ApplyConfiguration(String) |
지정된 구성 파일 및 채널 팩터리의 서비스 엔드포인트에 있는 동작을 사용하여 채널 팩터리를 초기화합니다. (다음에서 상속됨 ChannelFactory) |
BeginClose(AsyncCallback, Object) |
통신 개체를 닫기 위한 비동기 작업을 시작합니다. (다음에서 상속됨 CommunicationObject) |
BeginClose(TimeSpan, AsyncCallback, Object) |
지정된 시간 제한으로 통신 개체를 닫기 위한 비동기 작업을 시작합니다. (다음에서 상속됨 CommunicationObject) |
BeginOpen(AsyncCallback, Object) |
통신 개체를 여는 비동기 작업을 시작합니다. (다음에서 상속됨 CommunicationObject) |
BeginOpen(TimeSpan, AsyncCallback, Object) |
지정된 시간 간격 내에 통신 개체를 여는 비동기 작업을 시작합니다. (다음에서 상속됨 CommunicationObject) |
Close() |
통신 개체가 현재 상태에서 닫힌 상태로 전환되도록 합니다. (다음에서 상속됨 CommunicationObject) |
Close(TimeSpan) |
통신 개체가 지정된 시간 간격 내에 현재 상태에서 닫힌 상태로 전환되도록 합니다. (다음에서 상속됨 CommunicationObject) |
CreateChannel() |
지정된 엔드포인트 주소에 지정된 형식의 채널을 만듭니다. (다음에서 상속됨 ChannelFactory<TChannel>) |
CreateChannel(EndpointAddress) |
특정 엔드포인트 주소에서 서비스에 메시지를 보내는 데 사용되는 채널을 만듭니다. (다음에서 상속됨 ChannelFactory<TChannel>) |
CreateChannel(EndpointAddress, Uri) |
클라이언트에서 서비스와 콜백 인스턴스 사이에 이중 채널을 만듭니다. |
CreateChannel(InstanceContext) |
클라이언트에서 서비스와 콜백 인스턴스 사이에 이중 채널을 만듭니다. |
CreateChannel(InstanceContext, Binding, EndpointAddress) |
클라이언트에서 서비스와 콜백 인스턴스 사이에 이중 채널을 만듭니다. |
CreateChannel(InstanceContext, Binding, EndpointAddress, Uri) |
클라이언트에서 서비스와 콜백 인스턴스 사이에 이중 채널을 만듭니다. |
CreateChannel(InstanceContext, EndpointAddress) |
클라이언트에서 서비스와 콜백 인스턴스 사이에 이중 채널을 만듭니다. |
CreateChannel(InstanceContext, EndpointAddress, Uri) |
클라이언트에서 서비스와 콜백 인스턴스 사이에 이중 채널을 만듭니다. |
CreateChannel(InstanceContext, String) |
클라이언트에서 서비스와 콜백 인스턴스 사이에 이중 채널을 만듭니다. |
CreateChannel(Object, Binding, EndpointAddress) |
클라이언트에서 서비스와 콜백 인스턴스 사이에 이중 채널을 만듭니다. |
CreateChannel(Object, Binding, EndpointAddress, Uri) |
클라이언트에서 서비스와 콜백 인스턴스 사이에 이중 채널을 만듭니다. |
CreateChannel(Object, String) |
클라이언트에서 서비스와 콜백 인스턴스 사이에 이중 채널을 만듭니다. |
CreateChannelWithActAsToken(SecurityToken) |
보안 토큰 역할을 사용하여 서비스에 메시지를 보내는 데 사용되는 채널을 만듭니다. (다음에서 상속됨 ChannelFactory<TChannel>) |
CreateChannelWithActAsToken(SecurityToken, EndpointAddress) |
특정 엔드포인트 주소에서 보안 토큰 역할을 사용하여 서비스에 메시지를 보내는 데 사용되는 채널을 만듭니다. (다음에서 상속됨 ChannelFactory<TChannel>) |
CreateChannelWithActAsToken(SecurityToken, EndpointAddress, Uri) |
지정된 전송 주소를 통해 특정 엔드포인트 주소에서 보안 토큰 역할을 하는 서비스로 메시지를 보내는 데 사용되는 채널을 만듭니다. (다음에서 상속됨 ChannelFactory<TChannel>) |
CreateChannelWithIssuedToken(SecurityToken) |
발급된 보안 토큰을 사용하여 서비스에 메시지를 보내는 데 사용되는 채널을 만듭니다. (다음에서 상속됨 ChannelFactory<TChannel>) |
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress) |
특정 엔드포인트 주소에서 발급된 보안 토큰을 사용하여 서비스에 메시지를 보내는 데 사용되는 채널을 만듭니다. (다음에서 상속됨 ChannelFactory<TChannel>) |
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress, Uri) |
지정된 전송 주소를 통해 특정 엔드포인트 주소에서 발급된 보안 토큰을 사용하여 서비스에 메시지를 보내는 데 사용되는 채널을 만듭니다. (다음에서 상속됨 ChannelFactory<TChannel>) |
CreateChannelWithOnBehalfOfToken(SecurityToken) |
보안 토큰을 대신하여 서비스에 메시지를 보내는 데 사용되는 채널을 만듭니다. (다음에서 상속됨 ChannelFactory<TChannel>) |
CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress) |
특정 엔드포인트 주소에서 보안 토큰을 대신하여 서비스에 메시지를 보내는 데 사용되는 채널을 만듭니다. (다음에서 상속됨 ChannelFactory<TChannel>) |
CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress, Uri) |
지정된 전송 주소를 통해 특정 엔드포인트 주소에서 보안 토큰을 대신하여 서비스에 메시지를 보내는 데 사용되는 채널을 만듭니다. (다음에서 상속됨 ChannelFactory<TChannel>) |
CreateDescription() |
서비스 엔드포인트에 대한 설명을 만듭니다. (다음에서 상속됨 ChannelFactory<TChannel>) |
CreateFactory() |
팩터리의 현재 엔드포인트에 대한 채널 팩터리를 빌드합니다. (다음에서 상속됨 ChannelFactory) |
EndClose(IAsyncResult) |
비동기 작업을 완료하여 통신 개체를 닫습니다. (다음에서 상속됨 CommunicationObject) |
EndOpen(IAsyncResult) |
통신 개체를 여는 비동기 작업을 완료합니다. (다음에서 상속됨 CommunicationObject) |
EnsureOpened() |
아직 열리지 않은 경우 현재 채널 팩터리를 엽니다. (다음에서 상속됨 ChannelFactory) |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 여부를 확인합니다. (다음에서 상속됨 Object) |
Fault() |
통신 개체가 현재 상태에서 오류 상태로 전환되도록 합니다. (다음에서 상속됨 CommunicationObject) |
GetCommunicationObjectType() |
통신 개체의 형식을 가져옵니다. (다음에서 상속됨 CommunicationObject) |
GetHashCode() |
기본 해시 함수로 사용됩니다. (다음에서 상속됨 Object) |
GetProperty<T>() |
채널 스택의 적절한 계층에서 요청된 형식화된 개체(있는 경우)를 반환하거나, 없는 경우 |
GetType() |
현재 인스턴스의 Type 가져옵니다. (다음에서 상속됨 Object) |
InitializeEndpoint(Binding, EndpointAddress) |
지정된 바인딩 및 주소를 사용하여 채널 팩터리의 서비스 엔드포인트를 초기화합니다. (다음에서 상속됨 ChannelFactory) |
InitializeEndpoint(ServiceEndpoint) |
지정된 엔드포인트를 사용하여 채널 팩터리의 서비스 엔드포인트를 초기화합니다. (다음에서 상속됨 ChannelFactory) |
InitializeEndpoint(String, EndpointAddress) |
지정된 주소 및 구성을 사용하여 채널 팩터리의 서비스 엔드포인트를 초기화합니다. (다음에서 상속됨 ChannelFactory) |
MemberwiseClone() |
현재 Object단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
OnAbort() |
현재 채널 팩터리의 내부 채널 팩터리를 종료합니다. (다음에서 상속됨 ChannelFactory) |
OnBeginClose(TimeSpan, AsyncCallback, Object) |
연결된 상태 개체가 있는 현재 채널 팩터리의 내부 채널 팩터리에서 비동기 닫기 작업을 시작합니다. (다음에서 상속됨 ChannelFactory) |
OnBeginOpen(TimeSpan, AsyncCallback, Object) |
연결된 상태 개체가 있는 현재 채널 팩터리의 내부 채널 팩터리에서 비동기 열기 작업을 시작합니다. (다음에서 상속됨 ChannelFactory) |
OnClose(TimeSpan) |
작업 완료를 위해 지정된 시간 제한으로 내부 채널 팩터리에서 닫기를 호출합니다. (다음에서 상속됨 ChannelFactory) |
OnClosed() |
통신 개체를 닫는 상태로 전환하는 동안 호출됩니다. (다음에서 상속됨 CommunicationObject) |
OnClosing() |
통신 개체를 닫는 상태로 전환하는 동안 호출됩니다. (다음에서 상속됨 CommunicationObject) |
OnEndClose(IAsyncResult) |
현재 채널 팩터리의 내부 채널 팩터리에서 비동기 닫기 작업을 완료합니다. (다음에서 상속됨 ChannelFactory) |
OnEndOpen(IAsyncResult) |
현재 채널 팩터리의 내부 채널 팩터리에서 비동기 열기 작업을 완료합니다. (다음에서 상속됨 ChannelFactory) |
OnFaulted() |
동기 오류 작업의 호출로 인해 통신 개체가 오류 상태로 전환된 후 처리를 삽입합니다. (다음에서 상속됨 CommunicationObject) |
OnOpen(TimeSpan) |
작업 완료를 위해 지정된 시간 제한으로 현재 채널 팩터리의 내부 채널 팩터리에서 열린 호출입니다. (다음에서 상속됨 ChannelFactory) |
OnOpened() |
채널 팩터리에 대한 ClientCredentials 개체의 읽기 전용 복사본을 초기화합니다. (다음에서 상속됨 ChannelFactory) |
OnOpening() |
현재 채널에 대한 내부 채널 팩터리를 빌드합니다. (다음에서 상속됨 ChannelFactory) |
Open() |
통신 개체가 생성된 상태에서 열린 상태로 전환되도록 합니다. (다음에서 상속됨 CommunicationObject) |
Open(TimeSpan) |
통신 개체가 지정된 시간 간격 내에 생성된 상태에서 열린 상태로 전환되도록 합니다. (다음에서 상속됨 CommunicationObject) |
ThrowIfDisposed() |
통신 개체가 삭제되면 예외를 throw합니다. (다음에서 상속됨 CommunicationObject) |
ThrowIfDisposedOrImmutable() |
State 속성의 통신 개체가 Created 상태로 설정되지 않은 경우 예외를 throw합니다. (다음에서 상속됨 CommunicationObject) |
ThrowIfDisposedOrNotOpen() |
통신 개체가 Opened 상태가 아니면 예외를 throw합니다. (다음에서 상속됨 CommunicationObject) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
이벤트
Closed |
통신 개체가 닫힌 상태로 전환할 때 발생합니다. (다음에서 상속됨 CommunicationObject) |
Closing |
통신 개체가 닫는 상태로 전환할 때 발생합니다. (다음에서 상속됨 CommunicationObject) |
Faulted |
통신 개체가 오류 상태로 전환될 때 발생합니다. (다음에서 상속됨 CommunicationObject) |
Opened |
통신 개체가 열린 상태로 전환될 때 발생합니다. (다음에서 상속됨 CommunicationObject) |
Opening |
통신 개체가 여는 상태로 전환할 때 발생합니다. (다음에서 상속됨 CommunicationObject) |
명시적 인터페이스 구현
IAsyncDisposable.DisposeAsync() |
클라이언트가 서비스 엔드포인트에서 메시지를 보내고 받는 데 사용하는 다양한 형식의 이중 채널을 만들고 관리하는 방법을 제공합니다. (다음에서 상속됨 ChannelFactory) |
IDisposable.Dispose() |
현재 채널 팩터리를 닫습니다. (다음에서 상속됨 ChannelFactory) |
확장 메서드
ConfigureAwait(IAsyncDisposable, Boolean) |
비동기 삭제 가능 파일에서 반환된 작업에 대한 대기가 수행되는 방법을 구성합니다. |
적용 대상
.NET