0

我正在尝试测试解决类型实例的程序的一部分。为此,我创建了一个假 IContainer:

this.container = A.Fake<IContainer>();

但是,当我到达这行代码时:

container.Resolve<APresenter>();

它抛出了一个 ComponentNotRegisteredException!

假的 IContainer 怎么知道抛出那个异常?伪造的容器应该只是接口的伪造,而不是实现的伪造。这里发生了什么?

4

1 回答 1

1

原来 IContainer.Resolve 是 IContainer 的扩展方法。它没有在接口中定义。我尝试在我的 Fake IContainer 上进行大量设置以使扩展方法正常工作,但大约一个小时后就放弃了。

Resolver更简单的方法是围绕 Autofac创建一个接口和一个包装器IContainer

于 2014-02-12T22:10:13.700 回答