Получить объект из контейнера, который был введен в зависимости? - PullRequest
0 голосов
/ 21 марта 2012

можно в Moq Framework это?

Я правильно настроил контейнер и использую его, но возможно ли получить конкретный экземпляр типа, который был введен?Например, я внедрил репозиторий в мой сервис, и я хотел бы получить экземпляр репозитория, используемый в сервисе, это возможно?

_container.Configure(c =>
{
c.For<IUserApplicationService>().Use<UserApplicationService>();
c.For<IRepository<LegalEntity>>().Use<LegalEntityRepository>();
c.For<IRepository<User>>().Use<UserRepository>();
c.For<ILocalMembershipService>().Use<AspMembershipServiceAdapter>();
c.For<IEmailService>().Use(emailStub);
});

Теперь я делаю это так, чтобы я использовал один единственный объект для IEmailService зависимости

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

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

Учитывая, что ваш контейнер поддерживает фабрики, как насчет установки фабрики для IEmailService в контейнере, который создает макет IEmailService, хранит его где-то доступном для ваших тестов и возвращает макет.

0 голосов
/ 21 марта 2012

То есть вы хотите получить доступ к вашему базовому типу из введенного интерфейса?Вы всегда можете разыграть, но это противоречит принципам DI.

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