我想组织我的尼尼姆绑定,方法是将它们分离成尼尼微模块。然而,我有不止一个应用程序将使用这些模块。其中一个是ASP.Net MVC应用程序,另一个是控制台应用程序,另一个是windows服务等等。在MVC应用程序中,我想使用InRequestScope作用域绑定,但在另一个应用程序中(它引用了InRequestScope模块所在的核心程序集),我想使用不同的作用域绑定。这个是可能的吗?
随着基础设施的发展,以及所有绑定的注册变得非常庞大和冗长,我最终在几个不同的组合根中重复这些绑定--它们之间唯一的区别是每个绑定的生存期范围。我真的很想把这个弄干。
最理想的是以下内容(伪代码):
多个应用程序引用的核心程序集
public class MyModule : NinjectModule {
public override Load(){
Kernel.Bind<IMyType>().To<MyType>();
}
}MVC应用程序中的
kernel.Load(new MyModule())
.Configure(p => p.UseInRequestScope);另一个应用程序中的
kernel.Load(new MyModule())
.Configure(p => p.UseInTransientScope);发布于 2015-03-12 02:48:23
复合根用于合成应用程序。通过扩展,如果您有多个应用程序,那么您应该有同样多的组合根。
它们是不是用来重用的,因为这将紧密地将应用程序连接在一起。正如这篇文章所指出的:
尝试重用组合根并不比尝试“重用”应用程序更有意义。
因此,简单地说,答案是每个应用程序使用一个组合根,然后您可以根据需要对每个应用程序的关系进行范围调整。通过组合应用程序的组合根,您将创建(至少)一个人为的问题,如果您只是将它们分开就不存在了。
https://stackoverflow.com/questions/29000490
复制相似问题