2013-09-13 5 views
0

Я работаю в среде, где я не контролировать запуск в PicoContainer предусмотрено, мне так:Как заменить компонент через экземпляр PicoContainer?

ApplicationManager.getApplication().getPicoContainer().getComponentInstanceOfType(Xyz.class); 

Мой вопрос, как я могу заменить компонент через PicoContainer?

Могу ли я получить ссылку на DefaultPicoContainer или MutablePicoContainer как-нибудь?

Или я могу просто отличить PicoContainer в MutablePicoContainer?

Примечание: с помощью "старой" версии, PicoContainer 1,3

Спасибо за любые советы.

ответ

0

Я нашел, что это было так просто, как приведение к MutablePicoContainer:

MutablePicoContainer picoContainer = (MutablePicoContainer) ApplicationManager.getApplication().getPicoContainer(); 
picoContainer.unregisterComponent("a.b.c"); 
picoContainer.registerComponentImplementation("a.b.c", MyComponent.class); 

Я думаю, по умолчанию PicoContainer был представлен в качестве своего рода «только для чтения» контейнер.

Смежные вопросы