Мы используем иерархию различных пользовательских областей с именем 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();
}