2004-10-08から1日間の記事一覧

Invoke() を実装する

Invoke() は、メソッド呼び出しである。 何をしなければならないかはわかりきっている。この場合は Add() を実行するだけだ。 メソッドに戻り値があるように、TransparentProxy に対する操作は、必ずなんらかのメッセージを応答として返さなければならない。…

メソッド呼び出しを記録する

とりあえず、実装に入るためには、 Form1 クラスが先に必要なので、 public Form1 { private int current = 0; public int Add(int value) { checked { int oldValue = current; this.current += value; return oldValue; } } }このような単純なクラスである…

TransparentProxy とメソッド呼び出し

ものすごく長くなりそうな気がするので、そろそろ主題に近づいていこう。 TransparentProxy の仕事は、主に2つで、至極単純である。 TransparentProxy の仕事の1つは、前述のような型チェックに関する誤魔化しであり CLR が isinst 等の実装で特別扱いして…

TransparentProxy

とりあえず、Form1Proxy クラスを利用することで、Form1 の TransparentProxy を得ることができた。こいつはいったい何ができるのか? まず、こいつは C# や VB.NET というプログラム言語のレベルどころか、IL のレベルまで降りて見ても明らかに異常なヤツで…

TransparentProxy と RealProxy

実際、GetTransparentPropxy() によって得られるのは 引数として渡した Form1 のインスタンスではなく、.NET Remoting のコアとなる TransparentProxy と言うオブジェクトである。 この TrapsparentProxy を生成するには、通常は RemotingServices クラスな…

メソッド呼び出しを記録する

ま、このネタはそこらじゅうで見かけることができる気がするが、せっかくなので書いてみよう。 事前にはっきり書いておくと、まともな説明にならない上に、すごく長い。 メールをくれた1名は読んでくれるかもしれないが、相当気合がないと読めないかもしれ…

MethodLogger ( 1 )

その前に 昨日、プロフィールというものを登録できるようになったので、登録してみた。 サイドバーに表示しているプロフィールは、【無料】似顔絵イラストメーカー :フリーでプロフィール画像を作成 さんで MSN Messeager 用に作成したもの。 アニメ絵ではな…