我的MVC 3控制器类中有一个方法,它接受两个参数:
public ActionResult MyMethod(string providerName, IAuthProvider providerImpl)
我在Unity容器中有多个IAuthProvider
注册名称,如下所示:
container.RegisterType<IAuthProvider, FacebookAuthProvider>("facebook");
container.RegisterType<IAuthProvider, GoogleAuthProvider>("google");
因此,当调用该方法时,我希望根据第一个参数解析第二个参数。例如,如果第一个参数是'facebook',则必须将第二个参数从容器解析为名为'facebook'的IAuthProvider
实现。
我期待任何想法!
备注:我使用Unity.2.1.505.0
答案 0 :(得分:3)
你的例子有很多问题。
MyMethod
,那么查看请求值并自己创建AuthProvider对象并返回该对象。答案 1 :(得分:0)
我认为如果您使用User Autofac,您可以按照预期的方式调用操作。但我不认为你可以用Unity做到这一点。 我用Autofac完成了它。