【发布时间】:2014-05-02 01:21:36
【问题描述】:
如果我不包含 Ninject.Extension.Factory 3.2.0.0 3/21/2014 构建,我有一个 MVC5、WebApi 应用程序可以正常工作。一旦我添加了该包,应用程序就会出现以下异常:
Error activating EntitleActionFilter using self-binding of EntitleActionFilter
Several constructors have the same priority. Please specify the constructor using ToConstructor syntax or add an Inject attribute.
Constructors:
EntitleActionFilter(List{NavigationItem} navigationItemsFunc{IEnumerable{string}} permissionFunc)
EntitleActionFilter(List{NavigationItem} navigationItemsFunc{IEnumerable{int}} permissionFuncInt)
我正在使用以下 Ninject 包(所有星期五,2014 年 3 月 21 日构建):
- Ninject 3.2.0.0
- Ninject.MVC5 3.2.0.0
- Ninject.Web.Common 3.2.0.0
- Ninject.Web.Common.WebHost 3.2.0.0
这两个构造函数是独一无二的。绑定看起来像:
Func<IEnumerable<int>> permissionFunc = () => Kernel.Get<INavigationPermissionsProvider>().GetPermissionsInt();
this.BindFilter<EntitleActionFilter>(FilterScope.Controller, 0)
.WithConstructorArgument("navigationItems",
context => context.Get<NavigationHelper>().GetNavigation().NavigationItems)
.WithConstructorArgument("permissionFuncInt", permissionFunc);
我确实经常使用 Ninject 工厂并且需要这个包。如果我删除 Ninject.Extensions.Factory 3.2 包,一切正常。相同的代码适用于以前的 3.0 版本的 Ninject 和工厂扩展。
【问题讨论】:
标签: c# asp.net-mvc ninject factory