我的Ninject模块中有以下代码:
this.BindFilter<PermitFilter>(FilterScope.Controller, 0)
.WhenControllerHas<PermitAttribute>()
.WithConstructorArgumentFromControllerAttribute<PermitAttribute>(
"permissions",
attribute => attribute.Permissions);
Ninject是否提供了使用字符串作为构造函数参数名称的任何替代方法?例如,我宁愿在构造函数上放置一个Permissions
属性,并在绑定语句中引用它(与Ninject的常规绑定机制一样)。这样的事情是可能的(或者是下一版本的作品)?
答案 0 :(得分:3)
在下一个版本中,您可以像这样指定它:
this.BindFilter(
x => new PermitFilter(
x.Inject<ISomeDependency>(),
x.FromControllerAttribute<PermitAttribute>().GetValue(attribute => attribute.Permissions)),
FilterScope.Controller,
0)
.WhenActionMethodHas<PermitAttribute>();