Сократить аналогичные определения инъекций зависимости? - PullRequest
0 голосов
/ 30 октября 2019

Следующий код вводит Handler#<MyClass#> в IHandler<MyClass#>. Как я могу использовать отражение, чтобы уменьшить количество строк? Или есть другой способ?

public void ConfigureServices(IServiceCollection services)
{
    services.AddRazorPages();
    services.AddServerSideBlazor();
    // ....
    services.AddTransient<IHandler<MyClass1>, AHandler>();
    services.AddTransient<IHandler<MyClass2>, BHandler>();
    services.AddTransient<IHandler<MyClass3>, CHandler>();
    services.AddTransient<IHandler<MyClass4>, DHandler>();
    services.AddTransient<IHandler<MyClass5>, EHandler>();
    services.AddTransient<IHandler<MyClass6>, FHandler>();
    services.AddTransient<IHandler<MyClass7>, GHandler>();
    // .... more
}

1 Ответ

2 голосов
/ 30 октября 2019

Если вам нужен способ отражения, попробуйте Scrutor

services.Scan(scan => scan.FromEntryAssembly()
     .AddClasses(classes => classes.AssignableTo(typeof(IHandler<>)))
     .AsSelf()
     .WithTransientLifetime());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...