ContextBoundObject クラス

元々、Object 派生クラスは、外部からのメソッド呼び出しを解決する処理に対して割り込むことができなかった。*1
これは MarshalByRefObject を派生元クラスにすることで解決し、CLROOP のメッセージ送受信を IMessage と Invoke() を利用した形にして、割り込み可能な状態になった。
同様に、MarshalByRefObject の派生クラスである ContextBoundObject クラスが、今回の問題を解決できる能力をもったクラスとして提供されている、ということを知らないと、この問題は解決できない。

というわけで、派生元クラスを ContextBoundObject に変更して完成……なんて都合のよい話はなかった。

*1:実は割り込めるのだが、それはまた別の機会に