コード例 #1
0
ファイル: Program.cs プロジェクト: VolhvPorechja/JustConveyor
        // Boostraping conveyor
        private static Finalizer BootstrapContainer()
        {
            var logger    = LogManager.GetCurrentClassLogger();
            var container = new IoCContainer();

            container.SetLogger(logger);
            Injection.RegisterInjectionProvider(container);

            // Preparing jobs and finalizer
            // This will be our jobs
            var processingInts = Enumerable.Range(0, 1000).ToList();

            container.RegisterSingle <IEnumerable <int> >(processingInts);
            // And in "collector" we will accumulate results.
            container.RegisterSingle("collector", new ConcurrentBag <int>());
            // To find out when we can close application we use CountFinalizer
            Action inTheEnd =
                () => logger.Info($"Result: {string.Join(",", container.Get<IEnumerable<int>>("collector"))}");

            var finalizer = new CountFinalizer(processingInts.Count, inTheEnd);

            // And boostrapping Conveyor itself
            Conveyor.Init(logger)
            .ScanForBlueprints()
            .WithMetricsService(new MetricsServiceSettings
            {
                BaseAddress   = "http://localhost:5001/",
                CorsAddresses = new List <string> {
                    "http://localhost/*"
                },
                MetricsConfig = new MetricsConfig
                {
                    IncludeLastLogsFrom = new List <string> {
                        "mainLogFile"
                    },
                    CountOfLogLines = 100
                }
            })
            .WithSupplier("IntsSupplier", Injection.InjectionProvider.Get <IntegersSupplier>())
            .WithFinalizer(finalizer)
            .Start();

            return(finalizer);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: VolhvPorechja/JustConveyor
        private static void BootstrapIoCContainer()
        {
            var container = new IoCContainer();

            container.SetLogger(mLogger);
            Injection.RegisterInjectionProvider(container);

            mFinalizer = new Finalizer((package, ctx) =>
            {
                mMaxValue = ctx.FinalUnitContext.GetUnit <double>();
                return(true);
            });
            container.RegisterSingle(mFinalizer);

            var servicesSettings = new ServicesSettingsManager(
                JObject.Parse(File.ReadAllText("./settings.json"))["services"]
                .ToObject <Dictionary <string, ServiceSettings> >());

            container.RegisterSingle(servicesSettings);
        }