我有一个像这样设置的 MVC 属性:
public class Activity : FilterAttribute
{
public string[] Tags { get; set; }
public Directive Directive { get; set; }
}
和相应的过滤器类
public class ActivityFilter : IActionFilter
{
public ActivityFilter(IService service, IEnumerable<string> tags, Directive directive)
{
...
}
}
我为过滤注入的属性绑定如下所示:
this.BindFilter<ActivityFilter>(FilterScope.Action, 0)
.WhenActionMethodHas<Activity>()
.WithPropertyValueFromActionAttribute<Activity>("tags", a => a.Tags)
.WithPropertyValueFromActionAttribute<Activity>("directive", a => a.Directive);
当我尝试调试我的网站时,我从 Ninject 收到一个错误,指出它无法激活 ActivityFilter,因为没有可用于 int 的匹配绑定,特别是:
ActivationException: Error activation int 没有匹配的绑定可用,并且类型不是自绑定的。激活路径:
2) 将依赖 int 注入到 ActivityFilter 类型的构造函数的参数指令中
1) 请求 ActivityFilter
似乎 Ninject 误解了整数的枚举参数,但我不知道如何解决这个问题。