Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

89 Zeilen
3.1 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. //附加功能如何读取单数寄存器;
  50. containerRegistry.RegisterForNavigation<AttachUC, AttachUCViewModel>();
  51. // 1. 加载配置文件
  52. var configuration = new ConfigurationBuilder()
  53. .SetBasePath(Directory.GetCurrentDirectory())
  54. .AddJsonFile("appsettings.json")
  55. .Build();
  56. // 2. 配置 DbContextOptions
  57. var options = new DbContextOptionsBuilder<ModbusDbContext>()
  58. .UseSqlServer(configuration.GetConnectionString("ConnStr"))
  59. .Options;
  60. // 3. 注册 DbContext
  61. containerRegistry.Register<ModbusDbContext>(() => new ModbusDbContext(options));
  62. }
  63. /// <summary>
  64. /// 程序打开默认是设置界面,来设置串口的各个东西
  65. /// </summary>
  66. protected override void OnInitialized()
  67. {
  68. MainWindowViewModel mainWindowViewModel = App.Current.MainWindow.DataContext as MainWindowViewModel;
  69. mainWindowViewModel!.DefultNaigation();
  70. base.OnInitialized();
  71. }
  72. //private SerialPort CreateSerialPort()
  73. //{
  74. // SerialPort serialPort = new SerialPort();
  75. // return serialPort;
  76. //}
  77. }
  78. }