using AutoMapper; using CapMachine.Core.IService; using CapMachine.Wpf.MapperProfile; using CapMachine.Wpf.Services; using CapMachine.Wpf.ViewModels; using CapMachine.Wpf.Views; using FreeSql; using Prism.DryIoc; using Prism.Ioc; using Prism.Regions; using System.Windows; namespace CapMachine.Wpf { /// /// Interaction logic for App.xaml /// public partial class App : PrismApplication { public App() { try { //24.2.7 //Syncfusion.SfSkinManager.SfSkinManager.ApplyStylesOnApplication = true; Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("MzEyMzM3NkAzMjM0MmUzMDJlMzBHdjVKNUNpNWZxYXQwR05ZbVYvUEtzbGxXMnVxRjYvRGtLSlZUOGpjQW44PQ=="); // 授权 a717c797-59e3-48de-b6b4-574a4e03dc79 if (!HslCommunication.Authorization.SetAuthorizationCode("a717c797-59e3-48de-b6b4-574a4e03dc79")) { //active failed //MessageBox.Show("授权失败!当前程序只能使用8小时!"); //return; } else { //IsActive = true; } //SfSkinManager.ApplyStylesOnApplication = true; } catch (Exception ex) { MessageBox.Show(ex.Message); } } protected override Window CreateShell() => null; protected override void RegisterTypes(IContainerRegistry containerRegistry) { ////注册日志服务 containerRegistry.RegisterSingleton(); containerRegistry.RegisterSingleton(); containerRegistry.RegisterSingleton(); ////注册设备服务 //containerRegistry.RegisterSingleton(); containerRegistry.RegisterSingleton(); //注册AutoMapper 将IAutoMapperProvider注入IOC容器,并对外提供IMapper注入类型。 containerRegistry.RegisterSingleton(); containerRegistry.Register(typeof(IMapper), GetMapper); //注册IFreeSql实例 单例 containerRegistry.RegisterSingleton(() => { IFreeSql Fsql = new FreeSqlBuilder() //.UseConnectionString(DataType.SqlServer, "Data Source=CT-PC;user instance=false;Initial Catalog=KylinEMS;Encrypt=True;TrustServerCertificate=True;User ID=sa;Password=12345678") .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=CT-PC;user instance=false;Initial Catalog=CapMachine;Encrypt=True;TrustServerCertificate=True;User ID=sa;Password=12345678") .UseAutoSyncStructure(true) .Build(); return Fsql; }); containerRegistry.RegisterSingleton(); containerRegistry.RegisterForNavigation(); containerRegistry.RegisterForNavigation(); containerRegistry.RegisterForNavigation(); containerRegistry.RegisterForNavigation(); containerRegistry.RegisterForNavigation(); containerRegistry.RegisterForNavigation(); containerRegistry.RegisterForNavigation(); containerRegistry.RegisterForNavigation(); containerRegistry.RegisterForNavigation(); //注册Dialog视图时绑定VM containerRegistry.RegisterDialog(); containerRegistry.RegisterDialog(); containerRegistry.RegisterDialog(); //注册AutoMapper //containerRegistry.RegisterSingleton(); //containerRegistry.Register(typeof(IMapper), GetMapper); } //private IMapper GetMapper(IContainerProvider container) //{ // var provider = container.Resolve(); // return provider.GetMapper(); //} /// /// 将IAutoMapperProvider注入IOC容器,并对外提供IMapper注入类型。 /// /// /// private IMapper GetMapper(IContainerProvider container) { var provider = container.Resolve(); return provider.GetMapper(); } /// /// 系统初始化 /// protected override void OnInitialized() { //从容器中获取MainView的实例对象 var container = ContainerLocator.Container; var shell = container.Resolve("MainView"); if (shell is Window view) { //更新Prism注册区域信息 var regionManager = container.Resolve(); RegionManager.SetRegionManager(view, regionManager); RegionManager.UpdateRegions(); //给MainView的MainViewFooterContentRegion区域设置FooterView具体的信息 regionManager.RequestNavigate("MainViewFooterContentRegion", nameof(FooterView)); //调用首页的INavigationAware 接口做一个初始化操作 if (view.DataContext is INavigationAware navigationAware) { navigationAware.OnNavigatedTo(null); //呈现首页 App.Current.MainWindow = view; } } //先加载服务,防止在ViewModel中使用时速度慢 var appVersionService = ContainerLocator.Container.Resolve(); //var appVersionService1 = ContainerLocator.Container.Resolve(); //var appVersionService2 = ContainerLocator.Container.Resolve(); var appVersionService3 = ContainerLocator.Container.Resolve(); var appVersionService4 = ContainerLocator.Container.Resolve(); base.OnInitialized(); } } }