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

本文关键字:获取 取对象 注入 依赖 | 更新日期: 2023-09-27 18:28:27

在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依赖

我想要的是让物体在飞行中被创造出来。可能是不可能的

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

所以你想从注入的接口访问你的基类型?你可以一直投,但这将违反DI原则。

假设您的容器支持工厂,那么在容器中为IEmailService设置一个工厂,创建IEmailService的mock,将其存储在测试可以访问的地方,并返回mock怎么样。