【发布时间】:2011-12-25 02:20:49
【问题描述】:
我需要使用特定接口注册我的 Autofac 容器,对于这种情况我想解析模拟。
我该怎么做?
我试过了:
var AppContainer = ApplicationContainer.GetApplicationContainer();
var cb = new ContainerBuilder();
cb.RegisterType<Mock<IStudyLoader>>().As<IStudyLoader>().SingleInstance();
cb.Update(AppContainer);
我不想更改我的代码来解决 IStudyLoader 以外的问题,但 Mock<IStudyLoader> 不能替代 IStudyLoader;例如Mock<IStudyLoader>.Object 可以替代IStudyLoader,但我无法注册Mock<IStudyLoader>.Object,因为它不是一个类型。
请纠正我;我觉得我错过了什么。
(我还有个限制,不能使用ApplicationContainer.GetApplicationContainer()以外的容器)
(我觉得测试的时候还是手动注入依赖比较好,但是这次不想改生产代码。)
【问题讨论】: