App.xaml.cs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using AutoMapper;
  2. using BlankApp1.Common;
  3. using BlankApp1.Common.AutoMapper;
  4. using BlankApp1.Common.Extension;
  5. using BlankApp1.ViewModels;
  6. using BlankApp1.Views;
  7. using DryIoc;
  8. using Microsoft.Extensions.DependencyInjection;
  9. using Microsoft.Extensions.Logging;
  10. using NLog.Extensions.Logging;
  11. using PLCTool.ViewModels.BasicConfigViewModel;
  12. using PLCTool.ViewModels.BusinessManageViewModel;
  13. using PLCTool.ViewModels.MonitorManageViewModel;
  14. using PLCTool.Views;
  15. using PLCTool.Views.BasicConfigView;
  16. using PLCTool.Views.BusinessManageView;
  17. using PLCTool.Views.MonitorManageView;
  18. using Prism.DryIoc;
  19. using Prism.Ioc;
  20. using Prism.Services.Dialogs;
  21. using SqlSugar;
  22. using System.Configuration;
  23. using System.Data;
  24. using System.IO;
  25. using System.Reflection;
  26. using System.Windows;
  27. namespace BlankApp1
  28. {
  29. /// <summary>
  30. /// Interaction logic for App.xaml
  31. /// </summary>
  32. public partial class App
  33. {
  34. string comConfig = ConfigurationManager.AppSettings["MySql"];
  35. protected override Window CreateShell()
  36. {
  37. return Container.Resolve<MainWindow>();
  38. }
  39. protected override void RegisterTypes(IContainerRegistry containerRegistry)
  40. {
  41. var factory = new NLogLoggerFactory();
  42. ILogger _logger = factory.CreateLogger("NLog.config");
  43. containerRegistry.RegisterInstance<ILogger>(_logger);
  44. containerRegistry.AddRegisterExtension(Assembly.LoadFrom("BizService.dll"), Assembly.LoadFrom("BizService.dll"));//批量注入仓储
  45. //containerRegistry.Register<IProductRepository, ProductRepository>();
  46. //containerRegistry.Register<IProductService, ProductService>();
  47. //注册AutoMapper
  48. containerRegistry.RegisterSingleton<IAutoMapperProvider, AutoMapperProvider>();
  49. containerRegistry.Register(typeof(IMapper), GetMapper);
  50. containerRegistry.RegisterForNavigation<BaseConfigView, BaseConfigViewModel>();
  51. containerRegistry.RegisterForNavigation<TreeMenuView, TreeMenuViewModel>();
  52. containerRegistry.RegisterForNavigation<StatisticsView, StatisticsViewModel>();
  53. containerRegistry.RegisterForNavigation<LogView, LogViewModel>();
  54. containerRegistry.RegisterForNavigation<PLCPointView, PLCPointViewModel>();
  55. containerRegistry.RegisterForNavigation<PLCReadView, PLCReadViewModel>();
  56. containerRegistry.RegisterForNavigation<PLCWriteView, PLCWriteViewModel>();
  57. containerRegistry.RegisterForNavigation<PLCConfigView, PLCConfigViewModel>();
  58. containerRegistry.RegisterForNavigation<DeviceKindView, DeviceKindViewModel>();
  59. containerRegistry.RegisterForNavigation<DeviceView, DeviceViewModel>();
  60. containerRegistry.RegisterForNavigation<ProjectView, ProjectViewModel>();
  61. containerRegistry.RegisterForNavigation<ProjectSelectView, ProjectSelectViewModel>();
  62. containerRegistry.RegisterForNavigation<DeviceTestView, DeviceTestViewModel>();
  63. containerRegistry.RegisterForNavigation<ResultQueryView, ResultQueryViewModel>();
  64. containerRegistry.RegisterForNavigation<RetryTestView, RetryTestViewModel>();
  65. containerRegistry.RegisterForNavigation<AddOrEditSchView, AddOrEditSchViewModel>();
  66. containerRegistry.RegisterForNavigation<DeviceTestCardView, DeviceTestCardViewModel>();
  67. containerRegistry.RegisterForNavigation<ProjectTestView, ProjectTestViewModel>();
  68. containerRegistry.RegisterForNavigation<DeviceResultCardView, DeviceResultCardViewModel>();
  69. containerRegistry.RegisterForNavigation<ProjectTestResultView, ProjectTestResultViewModel>();
  70. containerRegistry.RegisterDialog<AddDetailView, AddDetailViewModel>();
  71. containerRegistry.RegisterDialog<AutoTestView, AutoTestViewModel>();
  72. containerRegistry.RegisterDialog<ManualTestView, ManualTestViewModel>();
  73. containerRegistry.RegisterDialog<TestResultDetailView, TestResultDetailViewModel>();
  74. containerRegistry.RegisterDialog<WritePLCView, WritePLCViewModel>();
  75. containerRegistry.RegisterDialog<CopySchView, CopySchViewModel>();
  76. containerRegistry.RegisterDialog<AddOrEditProjectView, AddOrEditProjectViewModel>();
  77. containerRegistry.RegisterDialog<AddOrEditDeviceKindView, AddOrEditDeviceKindViewModel>();
  78. containerRegistry.RegisterDialog<AddOrEditDeviceView, AddOrEditDeviceViewModel>();
  79. }
  80. private IMapper GetMapper(IContainerProvider container)
  81. {
  82. var provider = container.Resolve<IAutoMapperProvider>();
  83. return provider.GetMapper();
  84. }
  85. protected override void OnInitialized()
  86. {
  87. //调试发现service为MainViewModel
  88. var service = App.Current.MainWindow.DataContext as IConfigureService;
  89. if (service != null)
  90. service.Configure();
  91. base.OnInitialized();
  92. }
  93. }
  94. }