1

我想在方法/属性中注入一些方面,无论它是私有的、公共的还是受保护的。

我浏览了许多博客和论坛,但找不到关于此的有用文章。

有人可以指导我吗?

4

1 回答 1

0

Unity 拦截某些方法的方式存在限制。当然,它是框架提供的标准 DI 设施之上的增值功能。据我所知,非 Unity 版本不支持对私有方法和构造函数的 AOP 样式拦截。TransparentProxyInterceptor只会拦截类型的实现接口或MarshalByRefObject使用的类型,而VirtualMethodInterceptor只会拦截虚拟方法。

我认为v3 中的 Interception 中没有添加任何新的拦截器。另请注意,通常的私有/受保护甚至内部方法都需要对 AOP 样式拦截进行特殊干预。这对于 Unity 来说更不受限制,因为它需要 IL 重写,这通常由PostSharp等专用 AOP 框架处理。

于 2013-12-18T10:31:02.250 回答