Пример #1
0
        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .ConfigureServices((hostContext, services) =>
        {
            services.AddSingleton(typeof(ILoggerAdapter <>), typeof(LoggerAdapter <>));
            services.AddSingleton <IEntryPointService, EntryPointService>();
            services.AddSingleton <IServiceLocator, ServiceScopeFactoryLocator>();

            // Infrastructure.ContainerSetup
            services.AddMessageQueues();
            services.AddDbContext(hostContext.Configuration);
            services.AddRepositories();
            services.AddUrlCheckingServices();

            var workerSettings = new WorkerSettings();
            hostContext.Configuration.Bind(nameof(WorkerSettings), workerSettings);
            services.AddSingleton(workerSettings);

            var entryPointSettings = new EntryPointSettings();
            hostContext.Configuration.Bind(nameof(EntryPointSettings), entryPointSettings);
            services.AddSingleton(entryPointSettings);

            // examples of different ways to add instances and lifetimes
            services.AddTransient <IOrderService, OrderService>();
            services.AddScoped <IOrderRepository, OrderRepository>();
            services.AddSingleton <IConnectionManager, ConnectionManager>();
            services.AddSingleton <SomeInstance>(new SomeInstance());

            services.AddHostedService <Worker>();
        });
Пример #2
0
 public Worker(ILoggerAdapter<Worker> logger,
     IEntryPointService entryPointService,
     WorkerSettings settings)
 {
     _logger = logger;
     _entryPointService = entryPointService;
     _settings = settings;
 }
        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .ConfigureServices((hostContext, services) =>
        {
            services.AddSingleton(typeof(ILoggerAdapter <>), typeof(LoggerAdapter <>));
            services.AddSingleton <IEntryPointService, EntryPointService>();
            services.AddSingleton <IQueueReceiver, InMemoryQueueReceiver>();
            services.AddSingleton <IQueueSender, InMemoryQueueSender>();

            var workerSettings = new WorkerSettings();
            hostContext.Configuration.Bind(nameof(WorkerSettings), workerSettings);
            services.AddSingleton(workerSettings);

            var entryPointSettings = new EntryPointSettings();
            hostContext.Configuration.Bind(nameof(EntryPointSettings), entryPointSettings);
            services.AddSingleton(entryPointSettings);

            services.AddHostedService <Worker>();
        });
Пример #4
0
        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .ConfigureServices((hostContext, services) =>
        {
            services.AddSingleton(typeof(ILoggerAdapter <>), typeof(LoggerAdapter <>));
            services.AddSingleton <IEntryPointService, EntryPointService>();
            services.AddSingleton <IQueueReceiver, InMemoryQueueReceiver>();
            services.AddSingleton <IQueueSender, InMemoryQueueSender>();

            // https://weblog.west-wind.com/posts/2017/Dec/12/Easy-Configuration-Binding-in-ASPNET-Core-revisited
            var workerSettings = new WorkerSettings();
            hostContext.Configuration.Bind(nameof(WorkerSettings), workerSettings);
            services.AddSingleton(workerSettings);

            var entryPointSettings = new EntryPointSettings();
            hostContext.Configuration.Bind(nameof(EntryPointSettings), entryPointSettings);
            services.AddSingleton(entryPointSettings);

            services.AddHostedService <Worker>();
        });
Пример #5
0
        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .ConfigureServices((hostContext, services) =>
        {
            services.AddSingleton(typeof(ILoggerAdapter <>), typeof(LoggerAdapter <>));
            services.AddSingleton <IEntryPointService, EntryPointService>();
            services.AddSingleton <IServiceLocator, ServiceScopeFactoryLocator>();


            // Infrastructure.ContainerSetup
            services.AddImages();
            services.AddUrlCheckingServices();

            var entryPointSettings = new EntryPointSettings();
            hostContext.Configuration.Bind(nameof(EntryPointSettings), entryPointSettings);
            services.AddSingleton(entryPointSettings);

            var workerSettings = new WorkerSettings();
            hostContext.Configuration.Bind(nameof(WorkerSettings), workerSettings);
            services.AddSingleton(workerSettings);

            services.AddHostedService <Worker>();
        });