2010-05-24 6 views
1

J'essaie d'en savoir plus sur l'injection de dépendances et j'utilise le bloc d'application Unity pour vous aider. Ce que je veux faire est, avoir une application de console qui enregistrera une classe (tant qu'elle implémente une interface spécifique) et exécutera une méthode ... Ainsi la méthode sur la classe qui implémente la méthode sera réalisé. L'espoir qui a du sens ... un bon coup de pouce dans la bonne direction serait parfait!Injection de dépendances avec Unity Application Block

Je regarde les docs sur msdn, mais je ne suis toujours pas sûr à 100% de la façon de s'y prendre.

Thx Steve

Répondre

1
var container = new UnityContainer(); 
container.RegisterType<IFoo, Foo>(); 

container.Resolve<IFoo>().Bar(); 

Lorsque Resolve est appelée, elle retourne une instance de Foo puisque c'était ce qui a été enregistré pour l'interface IFoo.

Unity ne possède pas de fonctionnalités d'enregistrement basées sur les conventions, comme les conteneurs DI avancés. Si vous voulez une composition tardive, vous pouvez jeter un oeil à MEF à la place.

+0

Merci, je vais avoir un jeu pas. Ce que j'espère aboutir à est une application qui lira dll, instancier des classes dans ces dll qui implémentent l'interface spécifique et exécutent le code. Les dll vont vivre dans un répertoire, donc je peux juste laisser tomber dans une DLL pour quelques fonctionnalités supplémentaires sans changer l'application. Espérons que je vais dans la bonne direction !! Je n'ai jamais regardé MEF, je vais y jeter un coup d'oeil ... thx – SteveCl

+0

MEF le fera pour vous. L'unité ne le fera pas. –

+0

Avez-vous des exemples (comme ci-dessus quelques lignes)? J'ai le code qui fonctionne donc j'inscris plusieurs classes qui implémentent la même interface et qui sont capables de tout résoudre et d'exécuter le code comme je le veux. Maintenant c'est juste l'ouverture de la DLL! Peut-être que je devrais commencer une autre question pour ce 1! – SteveCl

0

Je n'ai jamais entendu parler du MEF mais tout ce que vous devez faire est d'implémenter un simple modèle de plugin. J'ai écrit un article tout à l'heure sur la façon de le faire pour un moteur de base de données, mais il peut easilly être appliqué à tout ce qui implémente une interface:

http://www.simonrhart.com/2009/04/example-of-plugin-pattern-on-compact.html

Questions connexes