| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- using Unity;
- using Prism.Ioc;
- using EaseDapper;
- using Prism.Unity;
- using System.Windows;
- using Prism.Modularity;
- using Unity.Interception;
- using SHJX.Service.PortClient;
- using SHJX.Service.Common.ReadXML;
- using SHJX.Service.Common.Service;
- using SHJX.Service.Control.Service;
- using SHJX.Service.Common.Interface;
- using SHJX.Service.Shell.Views.Login;
- using SHJX.Service.Control.Interface;
- using SHJX.Service.Shell.Views.Manual;
- using SHJX.Service.Control.Repository;
- using SHJX.Service.Shell.Views.Setting;
- using Unity.Interception.PolicyInjection;
- using Unity.Interception.ContainerIntegration;
- using Unity.Interception.Interceptors.InstanceInterceptors.InterfaceInterception;
- using EaseScheduler;
- using System.Threading;
- using SHJX.Service.Control.Utils;
- namespace SHJX.Service.Shell
- {
- /// <summary>
- /// Interaction logic for App.xaml
- /// </summary>
- public partial class App : PrismApplication
- {
- protected override void OnStartup(StartupEventArgs e)
- {
- _ = new Mutex(true, "Hypermanganate_WorkStation_Software", out var ret);
- if (ret)
- {
- base.OnStartup(e);
- }
- else
- {
- MessageBox.Show("有一个和本程序相同的应用程序已经在运行,请不要同时运行多个本程序。\n\n这个程序即将退出。");
- Current.Shutdown();
- return;
- }
- }
- protected override Window CreateShell()
- {
- return Container.Resolve<LoginWindow>();
- }
- protected override void RegisterTypes(IContainerRegistry containerRegistry)
- {
- IUnityContainer container = PrismIocExtensions.GetContainer(containerRegistry);
- //注册服务和添加显示拦截
- container.AddNewExtension<Interception>()
- .RegisterType<IMainService, MainService>(new Interceptor<InterfaceInterceptor>(), new InterceptionBehavior<PolicyInjectionBehavior>())
- .RegisterType<ISampleService, SampleService>(new Interceptor<InterfaceInterceptor>(), new InterceptionBehavior<PolicyInjectionBehavior>())
- .RegisterType<ITemplateService, TemplateService>(new Interceptor<InterfaceInterceptor>(), new InterceptionBehavior<PolicyInjectionBehavior>())
- .RegisterType<ILoginService, LoginService>(new Interceptor<InterfaceInterceptor>(), new InterceptionBehavior<PolicyInjectionBehavior>())
- .RegisterType<ISettingService, SettingService>(new Interceptor<InterfaceInterceptor>(), new InterceptionBehavior<PolicyInjectionBehavior>())
- .RegisterType<IManualService, ManualService>(new Interceptor<InterfaceInterceptor>(), new InterceptionBehavior<PolicyInjectionBehavior>());
- containerRegistry.AddScheduler<Repositorys>();
- containerRegistry.Register<ExportFile>();
- containerRegistry.Register<Repositorys>();
- containerRegistry.Register<PortConnect>();
- containerRegistry.RegisterInstance(typeof(ReadConfigUtil), ReadConfigUtil.Instance);
- ConnectConfig config = new()
- {
- DbType = DataManagerConfig.Instance.DbType,
- ConnectString = DataManagerConfig.Instance.ConnString
- };
- IDataManager _dataManager = new DataManagerClient(config);
- containerRegistry.RegisterInstance(_dataManager);
- //注册单例模式
- containerRegistry.RegisterSingleton<IApplicationCommands, ApplicationCommands>();
- containerRegistry.RegisterSingleton<IWorkFlowService, WorkFlowService>();
- containerRegistry.RegisterSingleton<ILogService, LogService>();
- //注册类型
- containerRegistry.RegisterInstance<IFlyoutService>(Container.Resolve<FlyoutService>());
- #region 注册导航
- //登录导航
- containerRegistry.RegisterForNavigation<LoginMainContent>();
- containerRegistry.RegisterForNavigation<CreateAccount>();
- //设置导航
- containerRegistry.RegisterForNavigation<TitrationSettingWindow>();
- containerRegistry.RegisterForNavigation<HeatingSettingWindow>();
- containerRegistry.RegisterForNavigation<EquipmentSettingWindow>();
- containerRegistry.RegisterForNavigation<OtherSettingWindow>();
- //手动导航
- containerRegistry.RegisterForNavigation<LiquidManualWindow>();
- containerRegistry.RegisterForNavigation<MotorManualWindow>();
- containerRegistry.RegisterForNavigation<TitrationManualWindow>();
- containerRegistry.RegisterForNavigation<Titration2ManualWindow>();
- containerRegistry.RegisterForNavigation<TemperatureManualWindow>();
- containerRegistry.RegisterForNavigation<OtherManualWindow>();
- #endregion
- }
- protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
- {
- moduleCatalog.AddModule<Main.MainModule>();
- }
- }
- }
|