TransparentProxy とメソッド呼び出し

ものすごく長くなりそうな気がするので、そろそろ主題に近づいていこう。
TransparentProxy の仕事は、主に2つで、至極単純である。
TransparentProxy の仕事の1つは、前述のような型チェックに関する誤魔化しであり CLR が isinst 等の実装で特別扱いしている程度にすぎない。*1
もう1つの仕事も単純で、TransparentProxy 自身に対する操作を、IMessage 型に変換して stub へ転送することである。

いきなり話が難しくなった、とか思われたらどうしよう。
いや、ここまでの内容も「簡単に」とか「理解しやすく」とか、そんな意識などゼロで書いてあるのだが、すこしばかり飛躍している。

ここで振り返るべきは、RealProxy クラスの抽象メソッドである。

public abstract IMessage Invoke(IMessage msg);

まさに、IMessage を受け取るメソッドである。

*1:いや、そんな浅いものじゃないと思うが