Query Unity для всех экземпляров интерфейса - PullRequest
4 голосов
/ 22 января 2012

Мне нужно выяснить в моем проекте все классы, которые реализуют интерфейс IMyInterface и зарегистрированы в контейнере Unity.

Любой, кто знает способ сделать это, не имея единства, создает экземпляробъектов, которые зарегистрированы в Unity?

Ответы [ 2 ]

5 голосов
/ 23 января 2012

Вы можете запросить регистрации в экземпляре контейнера, используя запрос, подобный этому

var x = container.Registrations.Where(cm => cm.RegisteredType == typeof(IMyInterface));
0 голосов
/ 22 января 2012

Вы можете сначала запросить все типы, которые не являются абстрактными, и реализовать ваш интерфейс:

this.GetType().Assembly.GetTypes().Where(type => type.IsClass &&
                                              !type.IsAbstract &&
                                              type.IsAssignableFrom(IMyInterface));

Затем для каждого из этих типов запросите свой контейнер Unity, чтобы увидеть, содержит ли он его экземпляр.

...