我们在Ninject中使用了具有不同自定义命名范围的层次结构 应用。但是一段时间以来,我们一直在使用此框架的性能问题,并想用简单的注射器替换它。不幸的是,我在简单的进样器中找不到自定义示波器支持。
例如,我们以如下方式组成范围:
Bind<ITest>().To<Test>().InNamedScope(InjectionScope.CustomScope.ToString());
并且范围被定义为例如
Bind<ILeftCustomScope>().To<LeftCustomScope>()
.DefinesNamedScope(InjectionScope.CustomScope);
Bind<IRightCustomScope>().To<RightCustomScope>()
.DefinesNamedScope(InjectionScope.CustomScope);
然后在代码中的其他地方:
public CustomScopeBuilder(
IFactory<ILeftCustomScope> left_factory,
IFactory<IRightCustomScope> right_factory)
{
_left_factory = left_factory;
_right_factory = right_factory;
}
private ICustomScope MakeLeftScope()
{
return _left_factory.Create();
}
private ICustomScope MakeRightScope()
{
return _right_factory.Create();
}