【发布时间】:2013-10-15 15:46:09
【问题描述】:
我有一个像这样设置的 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:激活 int 时出错 没有匹配的绑定可用,并且该类型不可自绑定。 激活路径:
2) 将依赖 int 注入到 ActivityFilter 类型的构造函数的参数指令中
1) ActivityFilter 请求
似乎 Ninject 误解了整数的枚举参数,但我不知道如何解决这个问题。
【问题讨论】:
标签: c# enums ninject ninject.web