Ninject связывает любой объект типа T в области запроса

У меня есть абстрактный класс RequestScopeContainer, который действует как временный держатель данных для текущего запроса.

public abstract class RequestScopeContainer
{

}

Можно ли сказать Ninject связать любые классы, которые реализуют абстрактный класс RequestScopeContainer, чтобы иметь жизненный цикл как область запроса?


person Catalin    schedule 19.02.2014    source источник
comment
Как вы регистрируете те классы, которые реализуют абстрактный RequestScopeContainer?   -  person Steven    schedule 19.02.2014
comment
Вы имеете в виду в Ninject? я искал что-то вроде этого: kernel.Bind<RequestScopeContainer>().InRequestScope();, но мне нужно указать класс, который реализует абстрактный RequestScopeContainer.   -  person Catalin    schedule 19.02.2014


Ответы (1)


Конечно, используйте расширение соглашений ninject: https://github.com/ninject/ninject.extensions.conventions

IBindingRoot.Bind(x => x
    .FromThisAssembly()
    .IncludingNonePublicTypes()
    .SelectAllClasses()
    .InheritedFrom<AbstractRequestScopeContainer>()
    .BindToSelf()
    .Configure(x => x.InRequestScope()));
person BatteryBackupUnit    schedule 19.02.2014