Ninject possède-t-il une méthode équivalente pour l'instance de registre d'unity?Equivalent Ninject de la méthode Unity RegisterInstance
Je veux créer un objet fantaisie et l'enregistrer.
Merci
Ninject possède-t-il une méthode équivalente pour l'instance de registre d'unity?Equivalent Ninject de la méthode Unity RegisterInstance
Je veux créer un objet fantaisie et l'enregistrer.
Merci
Voici la réponse simple
Bind<IMyType>().ToConstant<MyType>(new MyType());
Alors, voici un exemple d'utilisation Moq:
var mock = new Mock<IMyType>();
//Setup your mock expectations/etc here.
//...
Bind<IMyType>().ToConstant(mock.Object);
Bonus réponse:
Je trouve que certaines personnes sont en fait juste à la recherche pour créer une instance singleton d'une classe particulière, plutôt que de créer réellement eux-mêmes (cela permet à l'objet d'être créé quand quelque chose le demande, plutôt que lorsque vous construisez votre conteneur). Cela se fait comme ceci:
Bind<IMyType>.To<MyType>().Using<SingletonBehavior>();
Dans votre cas, puisque vous avez dit le mot « faux », je suppose que vous voudriez la première plutôt que la deuxième réponse, mais il est une bonne chose à savoir.
Vous ne savez pas quel type d'outil de simulation, le cas échéant, ou la version de Ninject que vous utilisez; cependant, il vaut la peine de mentionner que Ninject 2 a une extension qui fournit une intégration avec Moq - http://github.com/enkari/ninject.moq.
Je réalise que cela ne répond pas directement à votre question, Anderson's le fait bien, mais je pensais que cela pourrait être pertinent de toute façon.
de Nice! Ce pourrait être vraiment ce qu'il cherche. –
Ouais, ça a l'air bien - je ne l'ai pas encore utilisé moi-même, mais je cherche à le faire bientôt. –
en utilisant Moq ... var mock = new Mock(); Liaison () .ToConstant (mock); ConstantProvider créerait une instance de Mock , ce qui est compatible avec le service demandé –
Ryu
vous devez passer MyMock.Object, pas la maquette elle-même :) –
Je vais mettre à jour l'exemple ci-dessus avec le code dont vous avez besoin –