|
- using Microsoft.EntityFrameworkCore;
- using Microsoft.Extensions.Configuration;
- using ModbusDemo.Device;
- using ModbusDemo.Model;
- using ModbusDemo.VIew;
- using ModbusDemo.VIewModel;
- using Prism.DryIoc;
- using Prism.Ioc;
- using System;
- using System.Configuration;
- using System.Data;
- using System.DirectoryServices;
- using System.IO;
- using System.IO.Ports;
- using System.Windows;
-
- namespace ModbusDemo
- {
- /// <summary>
- /// Interaction logic for App.xaml
- /// </summary>
- public partial class App : PrismApplication
- {
- /// <summary>
- /// 创建启动页面
- /// </summary>
- /// <returns>启动页面</returns>
- protected override Window CreateShell()
- {
- return Container.Resolve<MainWindow>();
- }
- /// <summary>
- /// 实现控制反转和依赖注入功能
- /// </summary>
- /// <param name="containerRegistry"></param>
- protected override void RegisterTypes(IContainerRegistry containerRegistry)
- {
- //将主页面和主页面的VM结合起来
- containerRegistry.RegisterForNavigation<MainWindow, MainWindowViewModel>();
- //将线圈操作页面和线圈操作页面的VM结合起来
- containerRegistry.RegisterForNavigation<CoilUC, CoilUCViewModel>();
- //将寄存器操作页面和寄存器操作页面的VM结合起来
- containerRegistry.RegisterForNavigation<RegisterUC, RegisterUCViewModel>();
- //将寄存器操作页面和寄存器操作页面的VM结合起来
- containerRegistry.RegisterForNavigation<SettingsUC, SettingsUCViewModel>();
- //将串口注册为全局唯一的单例
- containerRegistry.RegisterSingleton<SerialPort>();
- //将读线圈注册
- containerRegistry.Register<ModbusRTU>();
- //附加功能如何读取单数寄存器;
- containerRegistry.RegisterForNavigation<AttachUC, AttachUCViewModel>();
-
-
- // 1. 加载配置文件
- var configuration = new ConfigurationBuilder()
- .SetBasePath(Directory.GetCurrentDirectory())
- .AddJsonFile("appsettings.json")
- .Build();
-
- // 2. 配置 DbContextOptions
- var options = new DbContextOptionsBuilder<ModbusDbContext>()
- .UseSqlServer(configuration.GetConnectionString("ConnStr"))
- .Options;
-
- // 3. 注册 DbContext
- containerRegistry.Register<ModbusDbContext>(() => new ModbusDbContext(options));
- }
- /// <summary>
- /// 程序打开默认是设置界面,来设置串口的各个东西
- /// </summary>
- protected override void OnInitialized()
- {
- MainWindowViewModel mainWindowViewModel = App.Current.MainWindow.DataContext as MainWindowViewModel;
- mainWindowViewModel!.DefultNaigation();
- base.OnInitialized();
- }
-
-
-
- //private SerialPort CreateSerialPort()
- //{
- // SerialPort serialPort = new SerialPort();
-
- // return serialPort;
- //}
- }
-
- }
|