.NETリモーティング(IPC版)データ
(続きです)
クライアントとサーバ間でやり取りするデータクラスは、次のように記述しました。MarshalByRefObjectクラスを継承して作成します。Callメソッドは、クライアントから呼ばれます。Callメソッドの内部では、callEventフィールドを経由して、サーバへイベントを発生させます。
public class MyMessage : MarshalByRefObject { // イベントで使用するデリゲート public delegate MyResponse CallDelegate(MyRequest myRequest); // イベント public event CallDelegate callEvent; /// <summary> /// 通信処理 /// </summary> /// <param name="request">リクエスト</param> /// <returns>レスポンス</returns> public MyResponse Call(MyRequest request) { return callEvent(request); } }
次は、クライアントからのリクエストデータを表すクラスです。シリアライズしておく必要がありました。
[Serializable] public class MyRequest { public string data; }
次は、サーバからのレスポンスデータを表すクラスです。シリアライズしておく必要がありました。
[Serializable] public class MyResponse { public string data; }