C# 使用Unity配置字典
我正在尝试使用Unity 2.0中的InjectionMethod注册一个通用字典类型,但它始终失败,并显示以下消息: 类型字典“2”没有接受C# 使用Unity配置字典,c#,.net,dependency-injection,C#,.net,Dependency Injection,我正在尝试使用Unity 2.0中的InjectionMethod注册一个通用字典类型,但它始终失败,并显示以下消息: 类型字典“2”没有接受 container=newunitycontainer(); container.RegisterType(); container.RegisterType(“ListViewData”,新ContainerControlledLifetimeManager()); container.RegisterType(“SessionDataDict”,新C
container=newunitycontainer();
container.RegisterType();
container.RegisterType(“ListViewData”,新ContainerControlledLifetimeManager());
container.RegisterType(“SessionDataDict”,新ContainerControlledLifetimeManager(),
新注入方法(“添加”,新解析参数(“ListViewData”);
有没有办法解决这个问题?实际上
Dictionary.Add()
接受两个参数。您还需要提供密钥,如(注意“key”arg):
新注入方法(“添加”、“键”,
新的解析参数(“ListViewData”);
您认为为什么需要这样做?请添加完整的错误消息和要注入的方法的签名。
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")));
new InjectionMethod("Add", "key",
new ResolvedParameter<ListContactsViewData>("ListViewData")));