所以我在Nancy 的 Windsor 引导程序中遇到了这个问题。我设法拼凑了一个小型测试项目,我可以在其中重现出了什么问题。您可以在此处找到该项目。
似乎出了问题的是: 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 实例以使用正确类型的代理?