IpcClientChannel 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
針對遠端呼叫實作使用 IPC 通訊協定傳輸訊息的用戶端通道。
public ref class IpcClientChannel : System::Runtime::Remoting::Channels::IChannelSender, System::Runtime::Remoting::Channels::ISecurableChannel
public class IpcClientChannel : System.Runtime.Remoting.Channels.IChannelSender, System.Runtime.Remoting.Channels.ISecurableChannel
type IpcClientChannel = class
interface IChannelSender
interface IChannel
interface ISecurableChannel
Public Class IpcClientChannel
Implements IChannelSender, ISecurableChannel
- 繼承
-
IpcClientChannel
- 實作
範例
下列程式碼範例示範如何使用 IpcClientChannel 類別。
#using <System.Runtime.Remoting.dll>
#using <System.dll>
#using <Counter.dll>
using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Ipc;
public ref class Client
{
public:
void ClientTest()
{
IpcClientChannel^ clientChannel = gcnew IpcClientChannel;
ChannelServices::RegisterChannel( clientChannel );
RemotingConfiguration::RegisterWellKnownClientType( Counter::typeid, L"ipc://remote/counter" );
Counter^ counter = gcnew Counter;
Console::WriteLine( L"This is call number {0}.", counter->Count );
}
};
int main()
{
Client^ c = gcnew Client;
c->ClientTest();
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Ipc;
public class Client
{
public static void Main ()
{
IpcClientChannel clientChannel = new IpcClientChannel();
ChannelServices.RegisterChannel(clientChannel);
RemotingConfiguration.RegisterWellKnownClientType( typeof(Counter) , "ipc://remote/counter" );
Counter counter = new Counter();
Console.WriteLine("This is call number {0}.", counter.Count);
}
}
上述程式碼會使用下列遠端物件。
using namespace System;
public ref class Counter: public MarshalByRefObject
{
private:
int count;
public:
Counter()
{
count = 0;
}
property int Count
{
int get()
{
return (count)++;
}
}
};
using System;
public class Counter : MarshalByRefObject {
private int count = 0;
public int Count { get {
return(count++);
} }
}
如需遠端公開此物件的伺服器範例,請參閱 IpcServerChannel 。
備註
重要
使用不信任的資料呼叫此類別的方法,會造成安全性上的風險。 呼叫此類別的方法時,請一律使用信任的資料。 如需詳細資訊,請參閱 驗證所有輸入。
the.NET Framework 遠端基礎結構會使用通道來傳輸遠端呼叫。 當用戶端呼叫遠端物件時,呼叫會序列化為用戶端通道所傳送且由伺服器通道接收的訊息。 收到訊息之後,它會還原序列化並處理。 任何傳回的值都是由伺服器通道傳輸,並由用戶端通道接收。
類別 IpcClientChannel 會使用Windows處理序間通訊 (IPC) 系統,在相同電腦上的應用程式域之間傳輸訊息。 在相同電腦上的應用程式域之間進行通訊時,IPC 通道的速度會比 TCP 或 HTTP 通道更快。
若要在用戶端執行其他訊息處理,您可以指定介面的 IClientChannelSinkProvider 實作,透過該介面傳遞物件處理的所有訊息 IpcClientChannel 。
根據預設,類別 IpcClientChannel 會使用二進位格式器來序列化所有訊息。
IpcClientChannel物件具有相關聯的組態屬性,可在組態檔中設定 (,方法是叫用靜態 RemotingConfiguration.Configure 方法) ,或藉由將集合傳遞 IDictionary 至 IpcClientChannel 建構函式) ,以程式設計方式 (。 如需這些組態屬性的清單,請參閱建 IpcClientChannel 構函式的檔。
建構函式
IpcClientChannel() |
初始化 IpcServerChannel 類別的新執行個體。 |
IpcClientChannel(IDictionary, IClientChannelSinkProvider) |
使用指定的組態屬性和接收,初始化 IpcClientChannel 類別的新執行個體。 |
IpcClientChannel(String, IClientChannelSinkProvider) |
使用指定的名稱和接收,初始化 IpcClientChannel 類別的新執行個體。 |
屬性
ChannelName |
取得目前通道的名稱。 |
ChannelPriority |
取得目前通道的優先權。 |
IsSecured |
取得或設定指出目前通道是否安全的布林值。 |
方法
CreateMessageSink(String, Object, String) |
傳回通道訊息接收,其傳遞訊息給指定 URL 或通道資料物件。 |
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
Parse(String, String) |
從指定的 URL 擷取通道 URI 和遠端已知物件 URI。 |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |