2009-09-15 8 views
1

J'ai réussi à installer Castle Windsor à l'aide d'un fichier de configuration XML et tout fonctionne correctement. Le seul problème est que sur une méthode que je besoin de Windsor pour passer une instance existante au constructeur si jeProblème Windsor AddComponentInstance

container.Kernel.AddComponentInstance<IMyClass>(MyClassInstance); 

avant que la méthode Resolve, mais cela ne fonctionne pas parce que Windsor crée une nouvelle instance de IMyClass sur la base du xml fichier de configuration. Ce comportement est correct sur tous les autres lieux sauf cette méthode particulière dont j'ai besoin pour passer l'instance existante. Comment puis-je résoudre ce problème? Essayé de trouver de la documentation sur le Web, mais pas de chance jusqu'à maintenant :(

Répondre

1

Vous pouvez le faire:..

var instance = new MyClass(); 
container.Register(Component.For<IMyClass>().Instance(instance)); 
+0

n'a pas bien fonctionné pour moi, je veux gérer la session NHibernate .. et je veux pour passer une session SQLite lors des tests (instanciés manuellement) sinon je veux une session mappée par le fichier de configuration xml Mais c'est encore plus compliqué car je veux casser ma couche de données pour plus de modules et d'assemblages logiques donc je dois refactoriser encore plus parce que maintenant j'ai deux usines de session une pour chaque module de données ainsi j'utilise des paramètres (sur la config de windsor xml) pour les classes nécessaires Thanx de toute façon vous m'avez donné un plus de bon moyen d'expérimenter. –

Questions connexes