Инъекционный эквивалент метода Unity RegisterInstance - PullRequest
5 голосов
/ 11 августа 2009

Есть ли у Ninject и эквивалентный метод для регистра единства.

Я хочу создать фиктивный объект и зарегистрировать его.

Спасибо

Ответы [ 2 ]

13 голосов
/ 11 августа 2009

Вот простой ответ

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>();

В вашем случае, поскольку вы сказали слово "макет", я бы предположил, что вам нужен первый, а не второй ответ, но это полезно знать.

2 голосов
/ 11 августа 2009

Не уверен, какой тип насмешливого инструмента, если таковой имеется, или версию Ninject, которую вы используете; однако стоит упомянуть, что Ninject 2 имеет расширение для него, которое обеспечивает интеграцию с Moq - http://github.com/enkari/ninject.moq.

Я понимаю, что это не дает прямого ответа на ваш вопрос, Андерсон делает это хорошо, но подумал, что это может быть актуально в любом случае.

...