使用Unity配置字典

时间:2012-02-03 22:51:56

标签: c# .net dependency-injection

我正在尝试使用带有Unity 2.0的InjectionMethod来注册一个通用的Dictionary类型,但它会随着消息而失败:

  

类型Dictionary`2没有公共方法Add,需要...

container = new UnityContainer(); 

container.RegisterType<ContactRepository>();
container.RegisterType<ListContactsViewData> ("ListViewData", new ContainerControlledLifetimeManager());

container.RegisterType<Dictionary<string, AbstractBaseData>> ("SessionDataDict", new ContainerControlledLifetimeManager (),
    new InjectionMethod ("Add", new ResolvedParameter<ListContactsViewData> ("ListViewData")));

有任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

实际上Dictionary.Add()接受两个参数。您还需要提供密钥,例如(注意“密钥”arg):

new InjectionMethod("Add", "key", 
             new ResolvedParameter<ListContactsViewData>("ListViewData")));