RealProxyまとめ
RealProxyわけわかんねぇ…GetTransparentProxyで取得したオブジェクトがなんでプロキシに突っ込んだ型でキャストできるんだ。なんでキャストしたオブジェクトのメソッドを実行したらGetTransparentProxy.Invokeがコールされるんだ。こえー
2010-09-02 03:54:56@cz75hiro パフォーマンス上の問題が気になるかもしれませんね…RealProxy で値域制限ってのはすっかり忘れてました
2010-09-02 16:42:15@cz75hiro 普通に RealProxy 継承して、Invoke でメソッド呼び出しメッセージをフックして、そこでカスタム属性読んで処理する、とかですかね
2010-09-02 16:43:43@cz75hiro 初めまして。RealProxyなログ昔よく作りました。古い実装ですが、参考になるようでしたらどうぞ。http://d.hatena.ne.jp/ugaya40/20090721/1248087652
2010-09-02 17:27:12ProxyAttribute はオブジェクトの生成時にプロキシを経由することを強制するんだったかな。これって .NET Remoting の Marshal されたオブジェクトを受け取るときに Activator.CreateInstance`1() だけでいいのと関係あるのかな
2010-09-02 21:51:48@takeshik newするオブジェクトがContextBoundObjectを継承している場合のみ、ProxyAttribute経由。RemotingじゃContexBoundObjectを使っていない気がしたからおそらくアスペクト指向用に拡張されたのかと。
2010-09-02 21:55:36@ugaya40 あー、なるほど、ContextBoundObject の子孫だけがコンストラクタのメッセージをハンドルできるんでしたっけ。
2010-09-02 21:56:26@takeshik 正直COMに疎くて、ContextBoundObjectの動きがわかってないですがおそらくそうです。.net1.x系時代の自動トランザクションもContextBoundObjectを継承したもの経由だからあいつはなんかありますね。
2010-09-02 22:02:36@cz75hiro 大まかに知っている事を少し勝手にしゃべりますね。MarshalByRefObjectは、外部コンテキストから参照した時に、値のコピーとしてではなく、参照のコピーを見せる特殊なオブジェクトです。
2010-09-02 22:14:47