Внедрение зависимостей через Scrutor
Создаю модульное приложение, в котором бизнес сервисы и компоненты Blazor будут добавляться динамически и регистрироваться через Scrutor.
Со Scrutor работаю впервые, вроде всё делаю по инструкции, но не могу зарегистрировать сборку модуля и сервисы. Делаю так
List<Assembly> allAssemblies = new List<Assembly>();
string path = @"C:\Users\Admin\source\repos\ServerCompare\src\Modules\Processes\Presentation\ServerCompare.Processes.WebUI\bin\Debug\net8.0";
string[] files = Directory.GetFiles(path, "*.dll");
foreach (string dll in files.Where(x =>
Path.GetFileName(x).StartsWith("ServerCompare.Processes")))
{
allAssemblies.Add(Assembly.LoadFile(dll));
}
services.Scan(scan =>
scan.FromAssemblies(allAssemblies)
.FromDependencyContext(DependencyContext.Default)
.AddClasses(classes => classes.AssignableTo<IScopedLifetime>(), true)
.UsingRegistrationStrategy(RegistrationStrategy.Skip)
.AsMatchingInterface()
.WithScopedLifetime());
Тут мы используем сервис который нам необходимо подключить
public class CompareProcessesListHandler : IRequestHandler<CompareProcessesList>
{
IProcessService ProcessService;
public CompareProcessesListHandler(IProcessService processService)
{
ProcessService = processService;
}
public Task Handle(CompareProcessesList request, CancellationToken cancellationToken)
{
ProcessService.GetProcesses();
var a = 1 + 1;
return Task.CompletedTask;
}
}
Сам сервис который мне необходимо подключить IProcessService
public class ProcessService : IProcessService, IScopedLifetime
{
public void GetProcesses()
{
}
}
В итоге получаю вот такую ошибку
InvalidOperationException: Unable to resolve service for type 'ServerCompare.Processes.WebUI.IProcessService' while attempting to activate 'ServerCompare.Processes.WebUI.Features.CompareProcessesListHandler'.
Подскажите, как её можно исправить?