Sto utilizzando Unity e Unity.AutoRegistration. Questa linea per l'Unità:Utilizzo di Unity, Come autoregistrare una classe generica con un'interfaccia generica senza registrarvi OGNI tipo
unityContainer.RegisterType(typeof(IAction<>), typeof(Action<>));
registra in modo efficace ogni classe nel progetto per IAction/Azione:
unityContainer.RegisterType<IAction<ObjectA>, Action<ObjectA>>();
unityContainer.RegisterType<IAction<ObjectB>, Action<ObjectB>>();
unityContainer.RegisterType<IAction<ObjectC>, Action<ObjectC>>();
[...]
unityContainer.RegisterType<IAction<UnrelatedObject>, Action<UnrelatedObject>>();
[...]
Ma, voglio solo oggetti specifici da registrare. Come potrei farlo? La mia ipotesi è di aggiungere un decoratore di attributi personalizzati alle classi specifiche.
[ActionAtribute]
public class ObjectB
{ [...] }
E provare a utilizzare Unity.AutoRegistration. Questo è il punto in cui sono bloccato:
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();
Questo è esattamente ciò di cui avevo bisogno! Grazie per l'esempio. – Jaguir
Non credo che ci sia un modo per farlo nella configurazione usando Unity 2.0? –