123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- using log4net;
- using Microsoft.Extensions.DependencyInjection;
- using System;
- using System.Collections.Generic;
- using System.Configuration;
- using System.Data;
- using System.Linq;
- using System.Runtime.CompilerServices;
- using System.Threading.Tasks;
- using System.Windows;
- namespace NEIntelligentControl2
- {
- /// <summary>
- /// 新能源智能发电集中控制系统
- /// </summary>
- public partial class App : Application
- {
- /// <summary>
- /// 依赖注入
- /// </summary>
- public static IServiceProvider ServiceProvider { get; set; }
- private ILog log = LogManager.GetLogger("File");
- private void Application_Startup(object sender, StartupEventArgs e)
- {
- var serviceCollection = new ServiceCollection();
- ConfigureServices(serviceCollection);
- ServiceProvider = serviceCollection.BuildServiceProvider();
- var mainWindow = ServiceProvider.GetRequiredService<MainWindow>();
- mainWindow.Show();
- }
- private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
- {
- try
- {
- e.Handled = true;
- log.Error("应用程序出现重大错误,但可继续运行!", e.Exception);
- }
- catch (Exception ex)
- {
- log.Fatal("应用程序出现致命错误,已经结束运行!", e.Exception);
- }
- }
- /// <summary>
- /// 获取服务
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <returns>服务</returns>
- public static T GetService<T>()
- {
- return (T)ServiceProvider.GetService(typeof(T));
- }
- /// <summary>
- /// 依赖注入
- /// </summary>
- private void ConfigureServices(IServiceCollection services)
- {
- services.AddSingleton<Models.Pages.IPageAction, Models.Pages.PageManager>()
- .AddSingleton<Service.WebSocket.MessageBridge>()
- .AddSingleton<Models.Messages.WEBHelper>()
- .AddSingleton<Service.Windturbine.CacheManager>()
- .AddSingleton<Service.WebSocket.UrlManager>()
- .AddSingleton<Service.User.UserManager>()
- .AddSingleton<Service.Voice.VoiceManager>()
- .AddSingleton<Service.AGC.AGCManager>()
- .AddSingleton<Service.Alarm.AlarmManager>()
- .AddSingleton<Service.Windturbine.InfoManager>()
- .AddSingleton<Service.Windturbine.SuggestionManager>()
- .AddSingleton<Service.Windturbine.ControlManager>()
- .AddSingleton<Models.Pages.TagManager>()
- .AddSingleton<Service.Station.StationManager>()
- .AddSingleton<MainWindow>()
- .AddTransient<Windows.ConfirmWindow>()
- .AddTransient<Windows.WindturbineInfoWindow>()
- .AddTransient<Windows.UserWindow>()
- .AddTransient< Pages.User.PageLogin>()
- .AddTransient< Pages.User.PageUserEdit>()
- .AddSingleton<Pages.Matrix.PageMatrix>()
- .AddTransient<Pages.AGC.PageAGC>()
- .AddSingleton<Pages.Help.PageHelp>()
- .AddSingleton<Pages.BoostStation.PageBoostStation>()
- .AddSingleton<Pages.BoostStation.PageBoostStation2>()
- .AddTransient<Pages.BoostStation.PageStation>()
- .AddTransient<Pages.BoostStation.PageStation2>()
- .AddSingleton<Pages.Home.HomePage>()
- .AddSingleton<Pages.Home.StateTimePage>()
- .AddSingleton<Pages.Alarm.PageAlarmCenter>()
- .AddTransient<Pages.Matrix.PageMatrixAll>()
- .AddTransient<Pages.Home.PageWindturbineAGC>()
- .AddTransient<Pages.Matrix.PageMatrixStation>()
- .AddTransient<Windows.ParameterComparisonWindow>()
- .AddTransient<Windows.Alarm.DeviceDetailAlarmWindow>()
- .AddTransient<Windows.Alarm.HistoryAlarmWindow>()
- .AddTransient<Windows.Alarm.HistoryFaultWindow>()
- .AddTransient<Windows.Alarm.RealTimeAlarmWindow>()
- .AddTransient<Windows.ControlTrackWindow>()
- .AddTransient<Windows.RecomendWindow>()
- .AddTransient<Windows.HistoryDataWindow>()
- .AddTransient<Windows.PV.InverterInfoWindow>()
- .AddTransient<Windows.PV.SUN2000InfoWindow>();
- }
- }
- }
|