У меня есть специальная служба, в которой я использую 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<T>(
this IServiceCollection services, params Assembly[] assemblies)
{
IEnumerable<Type> types = assemblies.SelectMany(a => a.GetExportedTypes())
.Where(c => c.IsClass && typeof(T).IsAssignableFrom(c));
foreach (var item in types)
services.AddScoped(item);
}
Запуск:
services.RegisterScoped<IInjectable>(typeof(IInjectable).Assembly);