asp.net-mvc-3 - 在 ASP.NET MVC3 中全局访问 autofac 依赖项解析器?

标签 asp.net-mvc-3 autofac

我将 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/

相关文章:

sql-server - 无法找到请求的.Net Framework 数据提供程序。它可能没有安装。 - 当遵循 mvc3 asp.net 教程时

asp.net-mvc-3 - ASP.NET MVC 模式

asp.net-mvc - 我应该如何在 Web 应用程序中限定 Entity Framework DbContext 的依赖注入(inject)? (InstancePerHttpRequest 与 SingleInstance)

dependency-injection - 具有开放泛型和运行时指定类型的 Autofac

c# - Autofac Resolve<IEnumerable<T>>() 返回空列表

asp.net - .NET Core IoC RegisterAssemblyTypes等效项

asp.net-mvc - 在 MVC3 页面中包含 RenderPartial 的开销是多少

javascript - Ajax 请求 ($.ajax(type :'GET' )) 不会传递大于 45 的数组,但是 ($.ajax(type :'POST' )) 会传递。为什么?

asp.net-mvc - 锁定用户

c# - 使用 Autofac 将 WebAPI UrlHelper 注入(inject)服务