Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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 MVC3控制器构造函数问题_C#_Asp.net Mvc 3_Unity Container - Fatal编程技术网

C# Unity MVC3控制器构造函数问题

C# Unity MVC3控制器构造函数问题,c#,asp.net-mvc-3,unity-container,C#,Asp.net Mvc 3,Unity Container,可能重复: 我有一个控制器构造函数,它有两个参数,实现下面所示的相同接口。我试图在Unity中注册这些类型,如下所示,但遇到了一个问题 控制器构造函数 统一注册 容器 .RegisterType() .RegisterType() 构建控制器时,两个适配器都解析为DaveAdapter,而不是一个Dave和一个Bob。如何告诉unity区分这两个适配器,以便控制器具有每种类型的适配器?您可以在注册控制器时使用InjectionConstructor和ResolvedParameter对象:

可能重复:

我有一个控制器构造函数,它有两个参数,实现下面所示的相同接口。我试图在Unity中注册这些类型,如下所示,但遇到了一个问题

控制器构造函数

统一注册

容器
.RegisterType()
.RegisterType()

构建控制器时,两个适配器都解析为DaveAdapter,而不是一个Dave和一个Bob。如何告诉unity区分这两个适配器,以便控制器具有每种类型的适配器?

您可以在注册控制器时使用
InjectionConstructor
ResolvedParameter
对象:

.RegisterType<IAdapter, DaveAdapter>()
.RegisterType<IAdapter, BobAdapter>("Bob")

.RegisterType<ControlController, ControlController>(
    new InjectionConstructor(
      new ResolvedParameter<IAdapter>(),
      new ResolvedParameter<IAdapter>("Bob")
))
.RegisterType()
.RegisterType(“Bob”)
.RegisterType(
新注入构造函数(
新的ResolvedParameter(),
新解析参数(“Bob”)
))

我不知道Unity,但Ninject允许根据参数名进行绑定。谢谢,这似乎可以解决问题!从未想过注册控制器并使用注入构造函数!:D
 container
.RegisterType<IAdapter, DaveAdapter>()
.RegisterType<IAdapter, BobAdapter>()
.RegisterType<IAdapter, DaveAdapter>()
.RegisterType<IAdapter, BobAdapter>("Bob")

.RegisterType<ControlController, ControlController>(
    new InjectionConstructor(
      new ResolvedParameter<IAdapter>(),
      new ResolvedParameter<IAdapter>("Bob")
))