Ninject - 不同的解决方案配置

时间:2012-10-16 18:47:43

标签: c# asp.net asp.net-mvc inversion-of-control ninject

我正在开发一个应用程序并使用Ninject进行DI。我希望能够根据我使用的解决方案配置将不同的对象注入给定的方法。也就是说,在“模拟”配置模式中,我想注入一个模拟对象,并且在调试/发布配置中,我想注入一个真实对象。

阅读Ninject and configuration我明白XML配置提供了这样的可能性。但是,如果可能的话,我想在没有XML的情况下这样做。 (我倾向于同意Ninject注意细节不应该在已发布的产品中配置......)我也知道我可以使用预处理器指令来执行此操作。我想知道的是,如果Ninject中存在此功能,或者我需要扩展/解决方法来完成它。

1 个答案:

答案 0 :(得分:6)

ninject配置中的预处理程序指令怎么样?它应该做你想要的。

#if DEBUG
        kernel.Bind<IMyService>().To<MyServiceMock>();
#else
        kernel.Bind<IMyService>().To<MyService>();
#endif