2012-02-03 256 views
0

我试图使用InjectionMethod使用Unity 2.0注册一个通用的字典类型,但它保持与消息失败:配置字典使用Unity

类型Dictionary`2没有一个公共方法添加这需要......

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"))); 

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

+2

您为什么认为您需要这样做? – Steven 2012-02-03 23:54:06

+0

请问您可以添加完整的错误消息和您要注入的方法的签名。 – 2012-02-04 06:39:33

回答

0

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

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