#c# #asp.net-mvc #dependency-injection #structuremap
#c# #asp.net-mvc #внедрение зависимостей #structuremap
Вопрос:
Я пытаюсь создать экземпляры всех подклассов одного класса, используя structuremap. Как бы я это сделал и как бы я контролировал их жизненный цикл?
У меня есть базовый тип, который другие разработчики наследуют для создания своих классов. В какой-то момент я хочу создать экземпляры всех этих подклассов и вызвать методы для них.
Комментарии:
1. С каким битом вам нужна помощь, с определением того, какие типы наследуются от вашего класса, или с созданием экземпляра объекта типа T ?
2. Вы хотите получить список всех производных типов?
Ответ №1:
Вы можете выполнить пакетную регистрацию следующим образом:
container.Configure(r =>
{
foreach (var assembly in
AppDomain.CurrentDomain.GetAssemblies())
{
r.Scan(s =>
{
s.Assembly(assembly);
s.AddAllTypesOf<MyBaseType>();
});
}
});
И вы можете разрешить все зарегистрированные типы следующим образом:
IList<MyBaseType> filters =
container.GetAllInstances<MyBaseType>();