我有一个 MVC4 项目,我在其中使用 Ninject 作为 DI 框架。我遇到的问题是试图将我的 DI 绑定从我的实现中分离出来,因为我不希望我的主 Web 项目引用我所有的其他项目。
我试图创建一个名为 Bindings 的单独项目,其中包含 ninject 模块:
public class WebModuleBindings : NinjectModule
{
public override void Load()
{
Bind<IStaticDataRepository>().To<StaticDataRepository>();
}
}
然后我在我的网络项目中动态加载这个 DLL:
kernel.Load(bindingDll);
当我在本地运行它时这很好用,但是当我使用 msbuild 并部署我的应用程序时,不包括绑定项目 dll,因为它没有在任何地方引用。
解决此问题的最佳方法是什么?