从依赖注入的容器中获取对象?

时间:2012-03-21 17:04:40

标签: c# moq

这可能在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 :(得分:0)

所以你想从你注入的界面访问你的基本类型?你总是可以演员,但这将违背DI原则。

答案 1 :(得分:0)

鉴于您的容器支持工厂,如何在创建IEmailService模拟的容器中为IEmailService设置工厂,将其存储在您的测试可访问的位置并返回模拟。