asp.net-mvc-3 – 如何注入依赖项到global.asax.cs
发布时间:2020-12-15 19:06:44 所属栏目:asp.Net 来源:网络整理
导读:如何注入依赖关系到global.asax.cs,即MvcApplication类? 以前使用服务定位器(反)模式的依赖注入,我试图通过使用IOC容器(特别是Unity.Mvc3,因为它附带的IDependencyResolver的实现,从最后的MVC应用程序的最佳实践建议框)和构造函数注入。 除了一些阻碍,
如何注入依赖关系到global.asax.cs,即MvcApplication类?
以前使用服务定位器(反)模式的依赖注入,我试图通过使用IOC容器(特别是Unity.Mvc3,因为它附带的IDependencyResolver的实现,从最后的MVC应用程序的最佳实践建议框)和构造函数注入。 除了一些阻碍,其中一个是在global.asax.cs(另一个是为自定义属性,但有一个问题,SO覆盖),一切似乎相当直截了目前为止。 MvcApplication类中的HttpApplication事件处理程序,如: Application_Start() Application_EndRequest(object sender,EventArgs e) Application_AcquireRequestState(object sender,EventArgs e) 可能需要外部依赖性。对ILogService的依赖。所以我如何注入他们没有诉诸服务定位器(反)模式例如。 private static ILogService LogService { get { return DependencyResolver.Current.GetService<ILogService>(); } } 任何帮助/建议非常感谢! 解决方法
你的global.asax.cs中的类是你的
Composition Root,所以你不能(也不应该)从外面注入任何东西。
但是,MvcApplication类只有一个实例,因此如果您需要在其中一个方法中使用服务,则只需将其声明为成员字段,例如: public class MvcApplication : System.Web.HttpApplication { private readonly ILogService log; public MvcApplication() { this.log = new MyLogService(); } protected void Application_Start() { // ... this.log.Log("Application started"); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何防止asp:FormView作为表格呈现?
- asp.net-mvc-4 – 如何在jQUERY中传递Id
- asp.net-mvc-3 – 如何在MVC 3 RAZOR中动态设置图像路径
- 修改FCKEditor实现将图片、文件等保存到数据库
- entity-framework – ASP.NET动态数据:如何在下拉列表中指
- asp.net-mvc – 在asp身份声明和会话数据之间进行选择
- asp.net-mvc-routing – ASP.NET Web Api路由(IIS vs Self
- asp.net-mvc – 在Razor View中重命名mvc模型对象
- asp.net-mvc – 在ASP.NET MVC控制器结果中设置HTTP状态不呈
- asp.net – Do Bundles优先于Routing吗?
推荐文章
站长推荐
热点阅读