Пример #1
0
 /// <summary>
 /// Registers a configuration instance which TOptions will bind against.
 /// </summary>
 /// <param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> to add the services to.</param>
 /// <returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> so that additional calls can be chained.</returns>
 /// <exception cref="ArgumentNullException">services
 /// or
 /// config</exception>
 public static IServiceCollection AddSynchroFeed(this IServiceCollection services)
 {
     return(services
            .AddSingleton(provider => provider.GetService <IOptions <ApplicationSettings> >()?.Value)
            .AddTransient <ActionObserverManager>()
            .Scan(scan => scan
                  .FromAssemblies(AssemblyLoader.AssemblyLoaderFunc("*.dll"))
                  .AddClasses(classes => classes.AssignableTo <IActionProcessor>())
                  .AsImplementedInterfaces()
                  .WithTransientLifetime()
                  .AddClasses(classes => classes.AssignableTo <IRepositoryFactory>())
                  .AsImplementedInterfaces()
                  .WithTransientLifetime()
                  .AddClasses(classes => classes.AssignableTo <IActionFactory>())
                  .AsImplementedInterfaces()
                  .WithTransientLifetime()
                  .AddClasses(classes => classes.AssignableTo <ICommandFactory>())
                  .AsImplementedInterfaces()
                  .WithTransientLifetime()
                  .AddClasses(classes => classes.AssignableTo <IActionObserverFactory>())
                  .AsImplementedInterfaces()
                  .WithTransientLifetime()
                  ));
 }