我有几个 WebActivator.PreApplicationStartMethod 装饰类。
一个用于 Ninject,另一个用于 AwesomeMVC,第三个用于后台任务调度程序。
问题是调度程序类需要利用 IoC 容器解决的依赖关系。
我的问题是:
- 我可以有多个 WebActivator.PreApplicationStartMethod 类吗?
- 我可以定义它们的初始化顺序,以便最重要的 IoC 排在第一位吗?
- WebActivator.PreApplicationStartMethod 静态类实例可以依赖 IoC 容器来解析其构造函数定义的依赖项吗?
是的,您可以拥有任意数量的课程,其中有WebActivator.PreApplicationStartMethod
指向它们的程序集属性。许多 NuGet 包使用此技术使它们能够引导到您的应用程序,而无需编辑 Global.asax。
您也可以定义顺序。您可以传递命名参数,Order
in the PreApplicationStartMethod
称呼。 WebActivator 框架将确保按照指定的顺序调用方法。例如,要首先注册 IoC 框架,请执行以下操作:
[assembly: WebActivator.PreApplicationStartMethod(typeof(MyApp.App_Start.NinjectWebCommon), "Start", Order=1]
[assembly: WebActivator.PreApplicationStartMethod(typeof(MyApp.App_Start.BGScheduler), "Start", Order=2]
Because WebActivator
类是静态类,我不知道如何在其中使用构造函数注入。你can但是,通过将 IoC 解析器注册为 Mvc 的默认服务定位器来使用服务定位器(反?)模式,使用System.Web.Mvc.DependencyResolver.SetResolver(IDependencyResolver resolver)
.
不过,我并不是特别想在这里讨论服务定位器模式的优点和缺点!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)