Ninject - 不同的解决方案配置

Lev*_*lho 1 c# asp.net asp.net-mvc ninject inversion-of-control

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

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

mip*_*e34 7

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

#if DEBUG
        kernel.Bind<IMyService>().To<MyServiceMock>();
#else
        kernel.Bind<IMyService>().To<MyService>();
#endif
Run Code Online (Sandbox Code Playgroud)