Вот создаем контекст:
var cxt = ContextRegistry.GetContext();
GenericApplicationContext context = new GenericApplicationContext(cxt);
При этом у нас в xml-настройках определено несколько объектов. Все они отлично просматриваются в объекте cxt.ObjectFactory
и соответственно в context.ParentContext.ObjectFactory
. Предположим, что после этого мы воспользуемся методом GenericApplicationContext.RegisterObjectDefinition
для регистрации нового объекта в контейнере. Он уже попадает в context.ObjectFactory
, а не в context.ParentContext.ObjectFactory
.
Пусть перед нами стоит задача получить из контейнера все объекты, являющиеся наследниками указанного типа:
var objects = context.GetObjectsOfType(serviceType).Values;
В итоге оказалось, что подобным образом можно получить только объекты из context.ObjectFactory
. Т.е., если искомые объекты были описаны в xml-файле настроек контейнера, то они попадут в context.ParentContext.ObjectFactory
и не будут найдены данным методом.
Да, наверняка можно эти объекты можно как-то получить, но к сожалению я ограничен методом GetObjectsOfType
. Товарище разработчике, как же заставить его искать определенные в xml объекты?