Atributo de filtro de configuração para injeção de dependência para aceitar parâmetros no construtor
Estou seguindo uma configuração de atributo de filtro ninject nestepágin.
Para eles, eles têm:
.WithConstructorArgumentFromControllerAttribute<LogAttribute>(
"logLevel", attribute => attribute.LogLevel);
O segundo parâmetro está esperando umFunc<LogAttribute, object> callback
. A lista de parâmetros real é configurada da seguinte maneira:
Log(LogLevel = Level.Debug)
Mas o meu atributo de filtro está configurado da seguinte maneira:
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();
}
}
De alguma forma isso está errado. Porque eu quero que meu filtro tenha a seguinte aparência:
[Auth("Admin", "Contrib")]
My bindings:
kernel.BindFilter<AuthFilter>(FilterScope.Controller, 0)
.WhenControllerHas<AuthAttribute>()
.WithConstructorArgumentFromControllerAttribute<AuthAttribute>("roles", /*Stuck here*/)