Ninject是否具有统一注册实例的等效方法。
我想创建一个模拟对象并注册它。
由于
答案 0 :(得分:13)
这是简单的答案
Bind<IMyType>().ToConstant<MyType>(new MyType());
所以这是一个使用Moq的例子:
var mock = new Mock<IMyType>();
//Setup your mock expectations / etc here.
//...
Bind<IMyType>().ToConstant(mock.Object);
奖金回答:
我发现有些人实际上只是想创建一个特定类的单例实例,而不是自己实际创建它(这允许在有人请求时创建对象,而不是在构建容器时) 。这是这样做的:
Bind<IMyType>.To<MyType>().Using<SingletonBehavior>();
在你的情况下,既然你说过“模拟”这个词,我会假设你想要的是第一个而不是第二个答案,但这是一件好事。
答案 1 :(得分:2)
不确定您正在使用的Ninject是什么类型的模拟工具或版本;然而,值得一提的是,Ninject 2有一个扩展,它提供与Moq的集成 - http://github.com/enkari/ninject.moq。
我意识到这并没有直接回答你的问题,Anderson's做得很好,但认为它可能是相关的。