在大型应用程序中,我发现自己真的希望我有内置的AOP设施。因为它位于C#中,您可以做的最好的是工厂和RealProxys,PostSharp,ICorDebug,ICorProfiler或注入框架。做AOP没有干净的内置方式。

是否有任何指示(博客文章/内部讨论)表明AOP正在进行中?

有帮助吗?

解决方案

罗曼的答案涵盖(几乎:)完美的当前解决方案。至于未来的支持, Anders Hejlsberg 之前曾说过他们正在等待和参见关于AOP的模式。

我们只能希望通过csc的管理重写和«编译器即服务»,可以插入编译器,并在那里注入方面。

其他提示

我没有听说过“干净的内置AOP方式”。但正如你所说,已经有很多“干净的AOP方式”,使用成熟而强大的框架,如 PostSharp Castle DynamicProxy

使用BCL,一种显而易见的AOP方法,就是使用.NET Remoting堆栈中的透明和真实代理。

另一种方法是依靠System.Reflection.Emit动态生成代理,例如来自Castle的hum,DynamicProxy。

最后,还有另一个官方微软标记的解决方案,随企业版一起提供图书馆。我在谈论政策注入申请阻止 Unity 还提供了一些利用PIAB的拦截功能。

Spring.NET也提供AOP。它需要很多配置,但一旦设置它就能很好地运行。

5月发布的Delphi Prism在语言层面提供AOP支持。

你可以在这里找到更多相关信息

http://prismwiki.codegear.com/en/Cirrus

此位置还有一个开源的方面库

http://code.remobjects.com/p/prismaspects/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top