2009-07-21 4 views
0

J'ai un projet Prism avec le code que j'ai obtenu de diverses sources, tout fonctionne assez bien, mais je remarque que dans certains modules j'injecteQuelle est la différence entre IContainer et IUnityContainer de Prism?

IContainer container 

et dans d'autres modules J'injecte

IUnityContainer container 

IContainer ne semble avoir composants, Ajouter et supprimer tout IUnityContainer a des dizaines de méthodes.

Je modifie souvent IContainer en IUnityContainer afin que je puisse utiliser les méthodes de résolution de ce dernier. Quelle est la différence entre ces deux et pourquoi voudrais-je utiliser IContainer?

Répondre

2

Ce sont vraiment deux choses différentes avec des objectifs différents. Le IUnityContainer est un conteneur d'injection de dépendances qui prend en charge toutes les tâches à effectuer dans un scénario d'injection/service de dépendance, telles que BuildUp, Resolve, Register, etc. Vous pouvez en savoir plus sur Unity (qui est fait partie de la bibliothèque Enterprise et utilisé par le GAO) en allant ici: Unity on Codeplex

IContainer est utilisé pour créer un conteneur générique pour les objets qui sont IComponents. Il est utilisé par un certain nombre de composants et se trouve dans le .NET Framework dans System.ComponentModel. Il n'est pas directement lié à Unity ou à l'ACG. Je considérerais ceci comme quelque chose qui était plus Windows Forms spécifique et moins WPF, bien que vous puissiez utiliser IComponents dans WPF indirectement. Lorsque vous effectuez une injection de dépendance, vous devez utiliser IUnityContainer et non IContainer.

Questions connexes