【发布时间】:2009-12-19 04:08:14
【问题描述】:
我有一种情况,我想拦截对 .NET 中属性的调用。我一直在看 Castle 中的 DynamicProxy,它似乎工作正常。但似乎为了使用它,我必须从一个新对象开始,这意味着我不能做这样的事情:
MyType myType = new MyType();
myType.Property = "Test";
...
MyType wrappedMyType = proxyBuilder.Wrap(myType, new MyInterceptor());
wrappedMyType.Property = "Test2";
我只是错过了什么吗?
编辑:
天哪,它当然应该是 WrappedMyType。大错。对不起。 :(
【问题讨论】:
-
我不知道这是否可行,但在我看来,使用静态类型语言会相当困难。
-
你不能,原因如下:kozmic.pl/archive/2009/12/02/…
-
@Krzysztof 我宁愿有一个代理生成器,它强制我将所有内容标记为“更可见”而不是保护为虚拟而不是失去包装现有对象的能力。