0

我正在编写一个应用程序框架,该框架将被许多客户端应用程序使用并用作构建它们的核心。该框架本身是一个 MVC3(当前)应用程序,它作为 Nuget 包使用,并提供锁定布局、UI 模板和统一的方法,如 IoC、部署打包等。我们面临的一个问题目前正在努力引入跨客户端应用程序的方法进入和退出日志记录。这不是关于 SO 的新主题 - 我看过一些处理它的帖子:

理想情况下,我希望客户端应用程序的开发人员不必考虑这种级别的日志记录,并让框架在后台处理它,而无需开发人员对其代码进行任何更改。正如链接帖子中提到的,有 PostSharp 和其他 AOP 框架之类的东西,但它们仍然依赖添加的属性来启用日志记录,这使得客户端开发人员负责添加这些属性。理想情况下,我希望框架代码能够管理所有这些,而无需客户端开发人员做任何事情。感觉就像是 IoC 框架之一应该提供的那种东西,但我还没有找到任何符合要求的东西。我们目前正在将 NInject 用于框架 IoC 容器,但这可能会改变,所以我没有绑定到任何特定的容器。我也没有绑定到特定的日志框架。想法?

4

2 回答 2

1

Autofac 有一个扩展,它使用 DynamicProxy 来实现方法拦截。您可以使用它在应用程序中通过 IoC 容器(或根据您在应用程序框架中定义的某些约定)解析的所有类上设置方法进入和退出日志记录。http://code.google.com/p/autofac/wiki/DynamicProxy2

于 2013-02-12T09:44:15.773 回答
0

Unitymethod interception. 在 MSDN 上,有一篇文章描述了如何在横切关注点上使用这个框架。Logging为和提供了代码示例Cachinghttps://msdn.microsoft.com/en-us/library/dn178466(v=pandp.30).aspx

于 2015-05-18T09:16:32.893 回答