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
{
///
/// Interaction logic for App.xaml
///
public partial class App : PrismApplication
{
///
/// 创建启动页面
///
/// 启动页面
protected override Window CreateShell()
{
return Container.Resolve();
}
///
/// 实现控制反转和依赖注入功能
///
///
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
//将主页面和主页面的VM结合起来
containerRegistry.RegisterForNavigation();
//将线圈操作页面和线圈操作页面的VM结合起来
containerRegistry.RegisterForNavigation();
//将寄存器操作页面和寄存器操作页面的VM结合起来
containerRegistry.RegisterForNavigation();
//将寄存器操作页面和寄存器操作页面的VM结合起来
containerRegistry.RegisterForNavigation();
//将串口注册为全局唯一的单例
containerRegistry.RegisterSingleton();
//将读线圈注册
containerRegistry.Register();
// 1. 加载配置文件
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
// 2. 配置 DbContextOptions
var options = new DbContextOptionsBuilder()
.UseSqlServer(configuration.GetConnectionString("ConnStr"))
.Options;
// 3. 注册 DbContext(作用域生命周期)
containerRegistry.Register(() => new ModbusDbContext(options));
}
///
/// 程序打开默认是设置界面,来设置串口的各个东西
///
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;
//}
}
}