И этот DI использует Iserviceprovider. Итак, в конструкторе инициализируется IServiceProvider.
Код: Выделить всё
public class LogAction: ActionFilterAttribute
{
private readonly IServiceProvider _serviceProvider;
public LogAction(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
public override OnActionExecuting(ActionExecutingContext filterContext)
{
var serviceUtility = _serviceProvider.GetService(serviceType: typeof(ISecurity)) as ISecurity;
//rest of the code
}
}
Код: Выделить всё
builder.Services.AddControllers(config =>
{
config.Filters.Add(new LogActionAttribute(// here I need to pass Iserviceprovider));
});
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/783 ... -the-class