2013-08-20 1 views
2

Я сейчас играю с рамкой Spring4D и думаю, что это довольно круто. Я пытаюсь достичь следующих результатов:Возможно ли зарегистрировать один и тот же класс/интерфейс несколько раз в Spring4D?

GlobalContainer.RegisterComponent<TPerson>.Implements<IPerson>('Normal'); 
    GlobalContainer.RegisterComponent<TPerson>.Implements<IPerson>('TestData').DelegateTo(
    function: TPerson 
    begin 
     result := TPerson.Create; 
     result.SetFirstName('Bob'); 
     result.SetSurname('Smith'); 
    end 
); 

С TPerson/IPerson, имеющим очевидные определения. Но независимо от того, если я пытаюсь

Person := ServiceLocator.GetService<IPerson>('Normal'); 

или

Person := ServiceLocator.GetService<IPerson>('TestData'); 

Я всегда получаю Боба, возможно ли это или я делаю что-то не так?

+3

Работает отлично со мной. Используете ли вы последний источник? RegisterComponent устарел сейчас, и вы должны использовать RegisterType вместо этого, но использование обоих работает нормально для меня тоже. Что-то еще происходит в вашем коде при догадках. – Jason

+1

Обязательно используйте последнюю версию с багажника. Эта ошибка не должна существовать. –

+0

@StefanGlienke Хотелось бы проверить последнюю версию, но я за брандмауэром, и я не смог выработать правильные настройки прокси для svn, я попробую еще раз, когда дома сегодня вечером – Alister

ответ

0

Это исправлено в последней версии Spring4D

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

  • Нет связанных вопросов^_^