6
我正在使用Unity和Unity.AutoRegistration。该行统一:使用Unity,如何使用通用接口自动注册泛型类,而无需注册每种类型
unityContainer.RegisterType(typeof(IAction<>), typeof(Action<>));
在项目IAction /行动有效注册的每个类:
unityContainer.RegisterType<IAction<ObjectA>, Action<ObjectA>>();
unityContainer.RegisterType<IAction<ObjectB>, Action<ObjectB>>();
unityContainer.RegisterType<IAction<ObjectC>, Action<ObjectC>>();
[...]
unityContainer.RegisterType<IAction<UnrelatedObject>, Action<UnrelatedObject>>();
[...]
但是,我只希望特定对象进行登记。我会怎么做?我的猜测是添加一个自定义属性装饰器到特定的类。
[ActionAtribute]
public class ObjectB
{ [...] }
并尝试使用Unity.AutoRegistration。这是我卡在的地方:
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();
这正是我所需要的!谢谢你的例子。 – Jaguir 2010-02-15 23:17:20
我不认为在使用Unity 2.0的配置中有这样的方法吗? – 2011-02-16 19:33:23