Проверьте экземпляр компонента контейнера Windsor - PullRequest
0 голосов
/ 09 июня 2010

Как я могу использовать свой контейнер Windsor, чтобы проверить, был ли зарегистрирован экземпляр (не только компонент)?

т.е. container.ContainsInstance(typeof(MyType))

[EDIT]

Другой способ написать это может быть

Kernel.GetAssignableHandlers(typeof(object))
    .Where(handler => handler.Service == typeof(MyType) || handler.ComponentModel.Implementation == typeof(MyType))
    .Any(handler => handler.***Instance*** != null)

Обратите внимание, что свойство Instance не существует в API.

1 Ответ

2 голосов
/ 11 июня 2010

Официально нет способа это проверить. Контейнер совершенно не знает о механизме активации, использованном для создания экземпляра, и это хорошо.

Неофициально, если вас не волнует зависимость от ... неофициального решения, вы можете проверить, относится ли тип активатора компонентов (с головы до головы) ExternalInstanceActivator. Если это так, то компонент имеет экземпляр, предоставленный извне.

Что еще важнее - Почему вам нужна эта информация?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...