Beispiel #1
0
        private void StartApplication()
        {
            var appConfig     = new AppSettings();
            var mockAppConfig = new MockAppSettings();

            Configuration.Bind("AppSettings", appConfig);
            Configuration.Bind("MockAppSettings", mockAppConfig);
            Configuration.Bind(mockAppConfig);

            if (!string.IsNullOrEmpty(mockAppConfig.ENV_SERVICESERVER_URL))
            {
                // MOCK限定
                // サービスサーバのURLが設定されている場合は、DAOが使用するサービスサーバのURLとして設定する。
                appConfig.ServiceServerUrl = mockAppConfig.ENV_SERVICESERVER_URL;
            }

            mContainer.RegisterInstance(appConfig);
            mContainer.RegisterInstance(mockAppConfig);

            // 設定のダンプ
            mLogger.Info($"Settings: ServiceServerUrl={appConfig.ServiceServerUrl}");
            mLogger.Info($"Settings: EnableMockDao={mockAppConfig.EnableMockDao}");

            // Ipcマネージャの初期化
            var frontendIpcMessageBridge = new PseudoFrontentIpcMessageBridge();
            var ipcBridge = new IpcBridge(mContainer, frontendIpcMessageBridge);

            mContainer.RegisterInstance <IRequestHandlerFactory> (ipcBridge.Initialize());

            // ServiceDistorionマネージャの初期化
            mContainer.Register <IServiceDistoributor, ServiceDistoributionManager> (Lifestyle.Singleton);

            // Intentマネージャの初期化
            mContainer.RegisterSingleton <IIntentManager, IntentManager> ();

            // Screenマネージャの初期化
            mContainer.RegisterSingleton <IScreenManager, ScreenManager> ();

            // Ipcメッセージブリッジの初期化
            mContainer.RegisterInstance <IFrontendIpcMessageBridge> (frontendIpcMessageBridge);

            // 各種HandlerFactoryの登録
            mContainer.RegisterInstance <ServiceDistributionResolveHandlerFactory> (new ServiceDistributionResolveHandlerFactory(mContainer));
            mContainer.RegisterInstance <ServiceMessageResolveHandlerFactory> (new ServiceMessageResolveHandlerFactory(mContainer));
            mContainer.RegisterInstance <IpcSendResolveHandlerFactory> (new IpcSendResolveHandlerFactory(mContainer));

            if (mockAppConfig.EnableMockDao)
            {
                IntegrateMockDao();
            }
            else
            {
                IntegrateDao();
            }

            mContainer.Verify();

            mContainer.GetInstance <WorkflowService.Handler> ().Initialize(); // 手動での初期化
        }
Beispiel #2
0
        private void InitializeContainer(IApplicationBuilder app)
        {
            // Add application presentation components:
            mContainer.RegisterMvcControllers(app);
            mContainer.RegisterMvcViewComponents(app);

            // Add application services. For instance:
            //container.Register<IUserService, UserService>(Lifestyle.Scoped);

            // Cross-wire ASP.NET services (if any). For instance:
            mContainer.CrossWire <ILoggerFactory>(app);

            // NOTE: Do prevent cross-wired instances as much as possible.
            // See: https://simpleinjector.org/blog/2016/07/

            var queue = app.ApplicationServices.GetService <IBackgroundTaskQueue>(); // ASPNETに登録したサービスのインスタンスを取得する

            mContainer.RegisterInstance <IBackgroundTaskQueue>(queue);               // サービスオブジェクトを、他のオブジェクトにインジェクションするためにDIに登録する

            var memCache = app.ApplicationServices.GetService <IMemoryCache>();      // ASPNETに登録したサービスのインスタンスを取得する

            mContainer.RegisterInstance <IMemoryCache>(memCache);

            // Ipcマネージャの初期化
            var ipcBridge = new IpcBridge(mContainer);

            mContainer.RegisterInstance <IRequestHandlerFactory>(ipcBridge.Initialize());

            // ServiceDistorionマネージャの初期化
            mContainer.Register <IServiceDistoributor, ServiceDistoributionManager>(Lifestyle.Singleton);

            // Intentマネージャの初期化
            mContainer.RegisterSingleton <IIntentManager, IntentManager>();

            // Screenマネージャの初期化
            mContainer.RegisterSingleton <IScreenManager, ScreenManager>();

            // 各種HandlerFactoryの登録
            mContainer.RegisterInstance <ServiceDistributionResolveHandlerFactory>(new ServiceDistributionResolveHandlerFactory(mContainer));
            mContainer.RegisterInstance <ServiceMessageResolveHandlerFactory>(new ServiceMessageResolveHandlerFactory(mContainer));
            mContainer.RegisterInstance <IpcSendResolveHandlerFactory>(new IpcSendResolveHandlerFactory(mContainer));

            mContainer.Verify();

            mContainer.GetInstance <WorkflowService.Handler>().Initialize(); // 手動での初期化
        }
Beispiel #3
0
        internal AugmentrexContext(bool shallow, Process host, Process game, string channelName, HotKeyRegistrar hotKeys)
        {
            Host = host;
            Game = game;

            var mod = game.MainModule;

            Memory  = new MemoryWindow(mod.BaseAddress, (uint)mod.ModuleMemorySize);
            Ipc     = new IpcBridge(channelName, shallow);
            HotKeys = hotKeys ?? new HotKeyRegistrar();

            if (!shallow)
            {
                Interpreter = new CommandInterpreter(this);
                _console    = Configuration.GameConsoleEnabled ? new ConsoleWindow(this) : null;
                _debug      = Configuration.DebugListenerEnabled ? new DebugListener(this) : null;
            }

            _shallow = shallow;
        }
Beispiel #4
0
        private void StartApplication()
        {
            var appConfig = new AppSettings();

            Configuration.Bind("AppSettings", appConfig);
            mContainer.RegisterInstance(appConfig);

            // Ipcマネージャの初期化
            var frontendIpcMessageBridge = new ElectronFrontentIpcMessageBridge();
            var ipcBridge = new IpcBridge(mContainer, frontendIpcMessageBridge);

            mContainer.RegisterInstance <IRequestHandlerFactory> (ipcBridge.Initialize());

            // ServiceDistorionマネージャの初期化
            mContainer.Register <IServiceDistoributor, ServiceDistoributionManager> (Lifestyle.Singleton);

            // Intentマネージャの初期化
            mContainer.RegisterSingleton <IIntentManager, IntentManager> ();

            // Screenマネージャの初期化
            mContainer.RegisterSingleton <IScreenManager, ScreenManager> ();

            // Ipcメッセージブリッジの初期化
            mContainer.RegisterInstance <IFrontendIpcMessageBridge> (frontendIpcMessageBridge);

            // 各種HandlerFactoryの登録
            mContainer.RegisterInstance <ServiceDistributionResolveHandlerFactory> (new ServiceDistributionResolveHandlerFactory(mContainer));
            mContainer.RegisterInstance <ServiceMessageResolveHandlerFactory> (new ServiceMessageResolveHandlerFactory(mContainer));
            mContainer.RegisterInstance <IpcSendResolveHandlerFactory> (new IpcSendResolveHandlerFactory(mContainer));

            IntegrateDao();

            mContainer.Verify();

            mContainer.GetInstance <WorkflowService.Handler> ().Initialize(); // 手動での初期化
        }