我在一个相当大的项目中使用 Ninject,并希望利用Dependency Creation和 Event Broker 扩展。
依赖创建自述文件给出了以下示例(尽管我相信InCreatorScope
可能已重命名为InDependencyCreatorScope
现在)
this.kernel.Bind<IParent>().To<Parent>();
this.kernel.DefineDependency<IParent, Dependency>();
this.kernel.Bind<Dependency>().ToSelf().InCreatorScope();
这个例子通过容器创建了一个依赖关系,它们之间Parent
和Dependency
没有它们之间的“硬”引用。这促进了组件之间的松散耦合,并允许我使用 Event Broker 来发布事件Parent
并订阅它Dependency
,而无需显式连接事件处理程序。
我的问题是:如果Dependency
注入其他对象并且我希望它具有RequestScope
标准激活的生命周期怎么办?我如何声明我想使用 Request 范围进行标准激活,但在创建时使用依赖创建者范围Parent
?