当前位置: 首页 > 编程语言 > C#

应用AOP分享

时间:2023-04-10 18:12:43 C#

应用AOP我一直在使用一些基本的AOP风格的解决方案来解决安全、日志记录、验证等交叉问题。我的解决方案涉及CastleWindsor和DynamicProxy。我走这条路是因为我可以使用基于Boo的DSL来应用所有内容并使我的代码远离属性。周末我被告知要查看PostSharp,因为它应该是一个“更好”的解决方案。我已经快速浏览了PostSharp,但我被属性的使用推迟了。有没有人尝试过这两种解决方案并愿意分享他们的经验?我只看过Castle-Windsor很短的时间(至少)所以我不能发表评论,但我确实使用了postharp。Postsharp通过编译时编织工作。它会在您的构建中添加一个编译后步骤,从而修改您的代码。编译代码就像您刚刚将横切关注点编程到代码中一样。这比运行时编织更有效,并且由于使用了属性,因此非常容易与Postsharp一起使用。我不认为将属性用于AOP与将它用于DI一样有问题。但这只是我个人的品味。但是...如果您已经在使用城堡进行依赖注入,我看不出您不应该将它用于AOP的原因。我认为虽然AOP在运行时比编译时慢一点,但它也更强大。AOP和DI在我看来是相关的概念,所以我认为使用框架是个好主意。所以我可能会再看看城堡的东西,我下一个项目需要AOP。PostSharp的几个小问题......我对PostSharp的一个问题是,当使用asp.net时,异常消息的行号“超出”了PostSharp注入程序集的IL指令数,因为PDB也没有注入:-)。此外,如果在运行时没有可用的PostSharp程序集,则会发生运行时错误。使用Windsor,可以稍后关闭横切,而无需重新编译代码。(希望说得通)以上就是《C#学习教程:应用AOP共享》的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: