Dans ma mise en œuvre, j'ai une interface comme: ICachingManager
. J'ai maintenant une implémentation. J'ai aussi créé une classe de gestionnaire comme:Enregistrement de classes composites dans Unity
public class CachingManager
{
#region Members
private ICachingManager service;
#endregion
#region Constructors
public CachingManager(ICachingManager service)
{
this.service = service;
}
#endregion
#region Public Methods
public void EnCache<T>(string key, T value)
{
this.service.EnCache<T>(key, value);
}
public T DeCache<T>(string key)
{
return this.service.DeCache<T>(key);
}
#endregion
}
Dans le cas où j'avais une mise en œuvre, alors je peux facilement enregistrer la classe CachingManager avec l'unité, l'unité Résout automatiquement et injecte le ICachingManager.
Si j'avais plus d'une implémentation utilisant des types nommés, comment puis-je utiliser Unity? Ai-je besoin d'utiliser une fabrique abstraite pour décider du type nommé à initialiser?
Est-ce une bonne idée de faire usage d'une telle classe composite ou d'utiliser directement des implémentations de l'interface avec Abstract Factory?
Merci :) OnOF. Dans le cas où je ne connais pas le nom au moment de la compilation, je le lis à la place depuis un fichier de configuration, puis j'ai besoin d'une usine? Encore une chose, j'essaie de voir comment configurer Uinty 2.0 avec un type qui n'implémente aucune interface, quelle est la syntaxe dans le fichier de configuration? merci beaucoup – Bill
1) vous avez besoin d'une fabrique si le nom de la dépendance est donné à l'exécution et il peut changer pendant l'exécution 2) pour enregistrer un type: . Vous n'avez pas besoin de l'attribut "mapTo". Voir http://msdn.microsoft.com/en-us/library/ff660914(v=PandP.20).aspx#config_registerelement –
onof
Merci d'avance! Les idées se clarifient maintenant sur DI et Factory;) Merci à vous. – Bill