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