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 方法可用來建立這些雙工通道。 雙工訊息模式是 Windows Communication Foundation (WCF) 服務可用的三種訊息模式之一。 其他兩種訊息模式是單向和要求-回復。
如需允許用戶端連線回服務的雙工服務一般討論,請參閱 雙工服務。 如需使用通道處理站撰寫 Windows Communication Foundation (WCF) 用戶端應用程式相關步驟的概述和討論,請參閱 如何:使用 ChannelFactory。 如需描述如何在實作回呼介面以存取使用雙工傳訊模式之服務的用戶端類別中建立 Windows Communication Foundation (WCF) 用戶端的程式,請參閱 如何:使用雙工合約存取服務。
建構函式
屬性
Credentials |
取得客戶端用來透過處理站所產生的通道來通訊服務端點的認證。 (繼承來源 ChannelFactory) |
DefaultCloseTimeout |
取得為關閉作業完成所提供的預設時間間隔。 (繼承來源 ChannelFactory) |
DefaultOpenTimeout |
取得開啟作業要完成的預設時間間隔。 (繼承來源 ChannelFactory) |
Endpoint |
取得處理站所產生通道所連線的服務端點。 (繼承來源 ChannelFactory) |
IsDisposed |
取得值,這個值表示是否已處置通訊物件。 (繼承來源 CommunicationObject) |
State |
取得值,這個值表示通訊物件的目前狀態。 (繼承來源 CommunicationObject) |
ThisLock |
取得在狀態轉換期間保護類別實例的互斥鎖定。 (繼承來源 CommunicationObject) |
方法
事件
Closed |
當通訊物件轉換成關閉狀態時發生。 (繼承來源 CommunicationObject) |
Closing |
當通訊物件轉換成關閉狀態時發生。 (繼承來源 CommunicationObject) |
Faulted |
當通訊物件轉換成錯誤狀態時發生。 (繼承來源 CommunicationObject) |
Opened |
當通訊物件轉換成開啟的狀態時發生。 (繼承來源 CommunicationObject) |
Opening |
當通訊物件轉換成開啟狀態時發生。 (繼承來源 CommunicationObject) |
明確介面實作
IAsyncDisposable.DisposeAsync() |
提供方法來建立和管理用戶端用來傳送和接收服務端點來回傳送和接收訊息之不同類型的雙工通道。 (繼承來源 ChannelFactory) |
IDisposable.Dispose() |
關閉目前的通道處理站。 (繼承來源 ChannelFactory) |
擴充方法
ConfigureAwait(IAsyncDisposable, Boolean) |
設定如何執行從異步可處置專案傳回的工作等候。 |