代码之家  ›  专栏  ›  技术社区  ›  Ryu

Unity RegisterInstance方法的对象等价物

  •  5
  • Ryu  · 技术社区  · 17 年前

    Ninject是否具有用于unity的registerinstance的方法和等效方法。

    我想创建一个模拟对象并注册它。

    谢谢

    2 回复  |  直到 17 年前
        1
  •  13
  •   Anderson Imes    17 年前

    这是一个简单的答案

    Bind<IMyType>().ToConstant<MyType>(new MyType());
    

    var mock = new Mock<IMyType>();
    //Setup your mock expectations / etc here.
    //...
    Bind<IMyType>().ToConstant(mock.Object);
    

    奖励答案:

    我发现有些人实际上只是想创建一个特定类的单例实例,而不是自己创建(这允许在有人请求时创建对象,而不是在构建容器时创建对象)。这是这样做的:

    Bind<IMyType>.To<MyType>().Using<SingletonBehavior>();
    

    在你的情况下,既然你说了“mock”这个词,我想你会想要第一个答案,而不是第二个答案,但知道这是件好事。

        2
  •  2
  •   Community Mohan Dere    9 年前

    不确定您使用的是哪种模拟工具(如果有的话)或Ninject的版本;然而,值得一提的是,Ninject 2有一个扩展,它提供了与Moq的集成-- http://github.com/enkari/ninject.moq .

    我知道这不能直接回答你的问题, Anderson's