У меня есть специальная служба, в которой я использую Microsoft IDataProtector.
Я зарегистрировал свою службу при запуске с помощью AddScoped, но у меня возникла проблема с использованием IDataProtector.
Сообщение об ошибке:
Невозможно разрешить службу для типа «Microsoft.AspNetCore.DataProtection.IDataProtector» при попытке активировать «Сервис».
вот мой код:
public class Service: IInjectable
{
private readonly IDataProtector _protector;
public Service(IDataProtector protector)
{
_protector = protector.CreateProtector("key");
}
other code ...
}
Способ регистрации службы:
public static void RegisterScoped(
this IServiceCollection services, params Assembly[] assemblies)
{
IEnumerable types = assemblies.SelectMany(a => a.GetExportedTypes())
.Where(c => c.IsClass && typeof(T).IsAssignableFrom(c));
foreach (var item in types)
services.AddScoped(item);
}
Запуск:
services.RegisterScoped(typeof(IInjectable).Assembly);
Подробнее здесь: https://stackoverflow.com/questions/632 ... n-idatapro