请有人解释一下FilterScope
是什么?是在BindFilter<>
中方法?
我正在使用以下内容:
kernel.BindFilter<QuizExists>(System.Web.Mvc.FilterScope.Controller, null).WhenControllerHas<QuizExistsAttribute>();
kernel.BindFilter<QuizExists>(System.Web.Mvc.FilterScope.Action, null).WhenActionMethodHas<QuizExistsAttribute>();
看来FilterScope
影响属性执行的顺序,但是还有第二个参数,即 order
.
什么给出了?
最佳答案
documentation中的评论非常清楚 FilterScope
的用途。它将过滤器的范围限制为Controller
级别或Action
级别。
虽然 order
参数似乎没有记录,但我认为如果多个过滤器应用于单个 Controller 或操作,它会控制应用过滤器的顺序。例如,您可以在 LogFilter
之前运行 AuditFilter
,无论它们注册的顺序如何。如果您要将一些过滤器属性应用于直接 Controller 并通过 Ninject 注册其他过滤器属性 - 如果没有此参数,将无法告诉框架应用它们的顺序。
关于c# - Ninject BindFIlter<> 中 FilterScope 参数的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32028445/