【发布时间】:2011-06-01 17:21:14
【问题描述】:
我正在关注page 上的 ninject 过滤器属性设置。
对他们来说,他们有:
.WithConstructorArgumentFromControllerAttribute<LogAttribute>(
"logLevel", attribute => attribute.LogLevel);
第二个参数是Func<LogAttribute, object> callback。他们的实际参数列表设置如下:
Log(LogLevel = Level.Debug)
但我的过滤器属性设置如下:
public class AuthAttribute : FilterAttribute { }
public class AuthFilter : IAuthorizationFilter
{
private readonly IUserService userService;
private string[] roles;
//Stuck on the constructor also. How do I accept params?
public AuthFilter(IUserService userService, params string[] roles)
{
this.userService = userService;
this.roles = roles;
}
public void OnAuthorization(AuthorizationContext filterContext)
{
throw new NotImplementedException();
}
}
不知何故这是错误的。因为我希望我的过滤器看起来像:
[Auth("Admin", "Contrib")]
我的绑定:
kernel.BindFilter<AuthFilter>(FilterScope.Controller, 0)
.WhenControllerHas<AuthAttribute>()
.WithConstructorArgumentFromControllerAttribute<AuthAttribute>("roles", /*Stuck here*/)
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 ninject