我有一个基于 ASP.NET 3.5 SP1 的 Webforms 应用程序,使用 MVP 模式(监管控制器)和 DI(autofac)。我的 Presenter 调用域中定义的仓储契约(DDD),这些契约在基础架构项目中实现。
Presenter 调用的仓储方法可能会出错,因此我需要记录异常并在视图上设置错误消息。
以前,我会向 Presenter 构造函数添加 另一个 参数,将引用存储在基本 Presenter 中,并在 Catch 块中调用 Log 方法。虽然我不太喜欢这种方法,但它可以完成工作。
我可以使用工厂获取日志类(如此描述),但我想先探索 AOP,因为它似乎非常有趣。
我已经阅读了编译时和运行时 AOP 的内容,并且想知道人们对不同解决方案的经验、优点、缺点和建议等。
从我所了解的情况来看,.NET 中有四个主要的 AOP 框架:
- Castle Windsor - 我通常不使用它,因为它有很多我不需要的功能。
- Spring.net - 据说表现良好,但通过其 xml 配置让人畏惧(我不喜欢非流畅的配置)。
- PostSharp - 基于属性驱动(我喜欢这个),但曾经有一些行号问题,不确定是否还存在。
- Unity - 有很多我实际上不需要的功能。
我看到 另一个问题有一些不错的答案,但已经是一年半以前的内容了。在此期间是否开发了更新、更好的框架,或者对现有解决方案进行了增强需要考虑?
参考意见,我选择了Autofac作为依赖注入的框架,因为它流畅、易于使用,我找不到任何负面评论,而且它只是有效。
有没有关于我应该尝试哪个AOP框架的建议?感谢您阅读了所有内容并提供任何想法。