I have the following filter attribute, and i can pass an array of strings to the attribute like this [MyAttribute("string1", "string2")]
.
public class MyAttribute : TypeFilterAttribute
{
private readonly string[] _ids;
public MyAttribute(params string[] ids) : base(typeof(MyAttributeImpl))
{
_ids = ids;
}
private class MyAttributeImpl : IActionFilter
{
private readonly ILogger _logger;
public MyAttributeImpl(ILoggerFactory loggerFactory)
{
_logger = loggerFactory.CreateLogger<MyAttribute>();
}
public void OnActionExecuting(ActionExecutingContext context)
{
// HOW DO I ACCESS THE IDs VARIABLE HERE ???
}
public void OnActionExecuted(ActionExecutedContext context)
{
}
}
}
How do i pass the string array _ids
to the implementation of the action filter? Am i missing something really obvious!?
The
TypedFilterAttribute
has got aArgument
property (of typeobject[]
) where you can pass arguments to the constructor of the implementation. So applied to your example you can use this code: