Необходимо передать IServiceProvider в качестве параметра конструктору класса.C#

Место общения программистов C#
Anonymous
Необходимо передать IServiceProvider в качестве параметра конструктору класса.

Сообщение Anonymous »

У меня есть класс LogAction. В этом классе я выполняю некоторые операции с использованием DI.
И этот 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
}
}
Пока все в порядке. Но в моем файле program.cs возникла проблема.

Код: Выделить всё

builder.Services.AddControllers(config =>
{
config.Filters.Add(new LogActionAttribute(// here I need to pass Iserviceprovider));
});
Будем благодарны за любую помощь.
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/783 ... -the-class

Вернуться в «C#»