您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

88 行
2.9 KiB

  1. using Microsoft.EntityFrameworkCore;
  2. using Microsoft.Extensions.Configuration;
  3. using ModbusDemo.Device;
  4. using ModbusDemo.Model;
  5. using ModbusDemo.VIew;
  6. using ModbusDemo.VIewModel;
  7. using Prism.DryIoc;
  8. using Prism.Ioc;
  9. using System;
  10. using System.Configuration;
  11. using System.Data;
  12. using System.DirectoryServices;
  13. using System.IO;
  14. using System.IO.Ports;
  15. using System.Windows;
  16. namespace ModbusDemo
  17. {
  18. /// <summary>
  19. /// Interaction logic for App.xaml
  20. /// </summary>
  21. public partial class App : PrismApplication
  22. {
  23. /// <summary>
  24. /// 创建启动页面
  25. /// </summary>
  26. /// <returns>启动页面</returns>
  27. protected override Window CreateShell()
  28. {
  29. return Container.Resolve<MainWindow>();
  30. }
  31. /// <summary>
  32. /// 实现控制反转和依赖注入功能
  33. /// </summary>
  34. /// <param name="containerRegistry"></param>
  35. protected override void RegisterTypes(IContainerRegistry containerRegistry)
  36. {
  37. //将主页面和主页面的VM结合起来
  38. containerRegistry.RegisterForNavigation<MainWindow, MainWindowViewModel>();
  39. //将线圈操作页面和线圈操作页面的VM结合起来
  40. containerRegistry.RegisterForNavigation<CoilUC, CoilUCViewModel>();
  41. //将寄存器操作页面和寄存器操作页面的VM结合起来
  42. containerRegistry.RegisterForNavigation<RegisterUC, RegisterUCViewModel>();
  43. //将寄存器操作页面和寄存器操作页面的VM结合起来
  44. containerRegistry.RegisterForNavigation<SettingsUC, SettingsUCViewModel>();
  45. //将串口注册为全局唯一的单例
  46. containerRegistry.RegisterSingleton<SerialPort>();
  47. //将读线圈注册
  48. containerRegistry.Register<ModbusRTU>();
  49. // 1. 加载配置文件
  50. var configuration = new ConfigurationBuilder()
  51. .SetBasePath(Directory.GetCurrentDirectory())
  52. .AddJsonFile("appsettings.json")
  53. .Build();
  54. // 2. 配置 DbContextOptions
  55. var options = new DbContextOptionsBuilder<ModbusDbContext>()
  56. .UseSqlServer(configuration.GetConnectionString("ConnStr"))
  57. .Options;
  58. // 3. 注册 DbContext
  59. containerRegistry.Register<ModbusDbContext>(() => new ModbusDbContext(options));
  60. }
  61. /// <summary>
  62. /// 程序打开默认是设置界面,来设置串口的各个东西
  63. /// </summary>
  64. protected override void OnInitialized()
  65. {
  66. MainWindowViewModel mainWindowViewModel = App.Current.MainWindow.DataContext as MainWindowViewModel;
  67. mainWindowViewModel!.DefultNaigation();
  68. base.OnInitialized();
  69. }
  70. //private SerialPort CreateSerialPort()
  71. //{
  72. // SerialPort serialPort = new SerialPort();
  73. // return serialPort;
  74. //}
  75. }
  76. }