我将 Autofac 与 ASP.NET MVC 集成一起使用,我所有的 Controller 都接收依赖项,而 Autofac 会自动解析嵌套依赖项。很好用
但是如何解决 Controller 实例化范围之外的依赖项?在我代码深处的某些地方,我需要向解析器询问我的记录器。一方面,将 Logger 作为依赖项传递给我创建的每个小对象似乎是错误的,另一方面,在我的代码中如此深入地依赖依赖项解析器似乎是错误的
例如,我有一个名为 Result 的类,它是从许多操作中返回的。这是一个一致使用的对象,我的应用程序代码可以依赖它从更深层的返回。当更深层的代码向该对象添加 UI 错误时,我想将其自动添加到需要解析的记录器中。让每个类都依赖于记录器只会妨碍
任何帮助表示感谢
最佳答案
您正在寻找的是 MVC 的 DependencyResolver.Current
:
var logger = DependencyResolver.Current.GetService<ILogger>();
关于asp.net-mvc-3 - 在 ASP.NET MVC3 中全局访问 autofac 依赖项解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5777830/