J'utilise Unity et Unity.AutoRegistration. Cette ligne pour l'unité:Utilisation de Unity, Comment auto-enregistrer une classe générique avec une interface générique sans enregistrer tout type
unityContainer.RegisterType(typeof(IAction<>), typeof(Action<>));
enregistre efficacement toutes les classes dans le projet de IAction/Action:
unityContainer.RegisterType<IAction<ObjectA>, Action<ObjectA>>();
unityContainer.RegisterType<IAction<ObjectB>, Action<ObjectB>>();
unityContainer.RegisterType<IAction<ObjectC>, Action<ObjectC>>();
[...]
unityContainer.RegisterType<IAction<UnrelatedObject>, Action<UnrelatedObject>>();
[...]
Mais, je ne veux que des objets spécifiques à enregistrer. Comment ferais-je cela? Ma conjecture est d'ajouter un décorateur d'attribut personnalisé aux classes spécifiques.
[ActionAtribute]
public class ObjectB
{ [...] }
Et essayez d'utiliser Unity.AutoRegistration. C'est là que je suis coincé à:
unityContainer.ConfigureAutoRegistration()
.Include(If.DecoratedWith<ActionAtribute>,
Then.Register()
.As ?? // I'm guessing this is where I specify
.With ?? // IAction<match> goes to Action<match>
)
.ApplyAutoRegistration();
C'est exactement ce dont j'avais besoin! Merci pour l'exemple. – Jaguir
Je ne pense pas qu'il existe un moyen de le faire dans la configuration avec Unity 2.0? –