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(); // 手動での初期化 }
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(); // 手動での初期化 }
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(); // 手動での初期化 }