共用方式為


IpcClientChannel 類別

定義

針對遠端呼叫實作使用 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 方法) ,或藉由將集合傳遞 IDictionaryIpcClientChannel 建構函式) ,以程式設計方式 (。 如需這些組態屬性的清單,請參閱建 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)

適用於