我很难弄清楚这些天对于 Ninject 和 ASP.NET MVC 3 的最佳方法是什么。
我已经Install-Package Ninject.MVC3
在我的应用程序上使用过,并且我的引导类具有以下方法:
public static void Start()
public static void Stop()
private static IKernel CreateKernel()
private static void RegisterServices(IKernel kernel)
一切都很好,它按预期加载了我的模块。但从历史上看,我所做的是这样的:
我的应用程序.dll
Kernel.Bind<ISomething>().To<Something>();
Kernel.Bind<IBlah>().To<Blah>();
Kernel.Bind<IFoo>().To<Foo>();
MyApp.Tests.dll
在这里,我想覆盖 ONLYISomething
的绑定,所以我以前只是取消绑定我需要模拟/重新绑定的东西:
Kernel.Unbind<ISomething>();
Kernel.Bind<ISomethig>().To<TestSomething>();
但是Nuget
包中没有一种方法可以暗示使用App_Start
原始库中的类来实现这一目标的深思熟虑的方法。如果我在我的测试应用程序中放置另一个 Ninject 引导类,它似乎只是准备构建一个新内核:
[assembly: WebActivator.PreApplicationStartMethod(typeof(TestNinjectBootstrapper), "Configure")]
我可以将内核静态存储在原始引导程序中并从测试项目中调用,但这感觉不对。我是不是想太多而错过了什么?或者想得太少:)
啊。什么是好方法?