J'utilise mon app.config pour dire l'unité de mon interface de type mappings ...unité d'injection à l'aide d'un fichier de configuration - résoudre la dépendance ne peux pas
<unity>
<containers>
<container>
<types>
<type type="UnityDAL.Interfaces.IDataContextFactory, UnityDAL"
mapTo="UnityDAL.UnityDemoDataContextFactory, UnityDAL" />
<type type="UnityDAL.Interfaces.IProductRepository, UnityDAL"
mapTo="UnityDAL.ProductRepository, UnityDAL" />
<type name="productRepo"
type="UnityDAL.Interfaces.IProductRepository, UnityDAL"
mapTo="UnityDAL.ProductRepository, UnityDAL" />
and so on...
en utilisant ce code
var wrapper = UnityWrapper.Create();
var productRepository =
wrapper.Container.Resolve<IProductRepository>("productRepo");
var productsBO = new ProductBO(productRepository);
var products = productsBO.GetAllProducts();
Voici le constructeur de l'objet wrapper ...
public UnityWrapper()
{
_container = new UnityContainer();
var section =
(UnityConfigurationSection)ConfigurationManager.GetSection("unity");
section.Containers.Default.Configure(_container);
}
mais je reçois une exception qui dit ...
{"La résolution de la dépendance a échoué, tapez = \" IProductRepository \ ", name = \" productRepo \ ". Message d'exception est: L'opération de construction en cours (build clé clé de construction [UnityDAL.ProductRepository, productRepo]) a échoué: Le paramètre dataContextFactory ne pouvait pas être résolu lors d'une tentative d'appeler constructeur UnityDAL.ProductRepository (. UnityDAL.Interfaces IDataContextFactory dataContextFactory) . (Type de stratégie Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy, indice 2) "}
Je pensais que ce noeud était câblage jusqu'à
<type type="UnityDAL.Interfaces.IDataContextFactory, UnityDAL"
mapTo="UnityDAL.UnityDemoDataContextFactory, UnityDAL" />
L'idée ici était à l'origine pour créer une belle chaîne de dépendance. Toute idée ce que je fais mal? Si vous avez des conseils ou des conseils sur la façon dont je peux corriger le problème, je voudrais les entendre. Merci pour toute aide.
Cheers,
~ ck à San Diego
Est-ce que productRepo de type 'IDataContextFactory'? Vous devez transmettre un 'IDataContextFactory' ou définir le constructeur dans le fichier de configuration Unity. – Martin