Estoy usando Unity y Unity.AutoRegistration. Esta línea de la Unidad:Usando Unity, ¿Cómo registro automáticamente una clase genérica con una interfaz genérica sin registrar CADA tipo?
unityContainer.RegisterType(typeof(IAction<>), typeof(Action<>));
registra con eficacia todas las clases en el proyecto para IAction/Acción:
unityContainer.RegisterType<IAction<ObjectA>, Action<ObjectA>>();
unityContainer.RegisterType<IAction<ObjectB>, Action<ObjectB>>();
unityContainer.RegisterType<IAction<ObjectC>, Action<ObjectC>>();
[...]
unityContainer.RegisterType<IAction<UnrelatedObject>, Action<UnrelatedObject>>();
[...]
Pero, sólo quiero objetos específicos para ser registrados. ¿Como podría hacerlo? Mi suposición es agregar un decorador de atributos personalizado a las clases específicas.
[ActionAtribute]
public class ObjectB
{ [...] }
Y trate de usar Unity.AutoRegistration. Aquí es donde estoy atascado en:
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();
¡Eso es exactamente lo que necesitaba! Gracias por el ejemplo. – Jaguir
Supongo que no hay forma de hacer esto en la configuración con Unity 2.0. –