Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Unity配置字典_C#_.net_Dependency Injection - Fatal编程技术网

C# 使用Unity配置字典

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

我正在尝试使用Unity 2.0中的InjectionMethod注册一个通用字典类型,但它始终失败,并显示以下消息:

类型字典“2”没有接受

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