そのため、ナンシーのウィンザーブートストラップでこの問題に遭遇しました。私はうまくいかないことを再現できる小さなテスト プロジェクトをまとめることができました。プロジェクトはここにあります。
問題が発生しているように見えるのは次のとおりです。DynamicProxy は、別のスレッドで呼び出されたメソッドではvoid Handle(Action<string> oncomplete)
なく、メソッドの呼び出しのみをキャッチするようです。別のスレッドに送信された後、 がプロキシされなくなったかのように。スクラッチ:プロキシされていないのは、同じクラスの別のメソッドへの呼び出しだけです。string Handle(string input)
Engine
これは、プログラムの出力が
Handled Handle with return type System.Void
test
ではない
Handled Handle with return type System.Void
Handled Handle with return type System.String
test
これは動的プロキシの予想される動作ですか? 別のスレッドのそのプロキシは、もはやプロキシされていませんか? それともコードに何か問題がありますか?
編集: 動的プロキシを RTFM しただけで、Works As Intendedのようです。正しい種類のプロキシを使用するように IEngine インスタンスを構成するにはどうすればよいですか?