87 lines
3.2 KiB
C#
87 lines
3.2 KiB
C#
using System;
|
|
using System.Windows;
|
|
using Prism.Container.DryIoc;
|
|
using Prism.Ioc;
|
|
using XP.Common.Configs;
|
|
using XP.Common.Dump.Configs;
|
|
using XP.Common.Dump.Implementations;
|
|
using XP.Common.Dump.Interfaces;
|
|
using XP.Common.Helpers;
|
|
using XP.Common.Localization.Configs;
|
|
using XP.Common.Localization.Extensions;
|
|
using XP.Common.Localization;
|
|
using XP.Common.Localization.Implementations;
|
|
using XP.Common.Localization.Interfaces;
|
|
using XP.Common.Logging;
|
|
using XP.Common.Logging.Implementations;
|
|
using XP.Common.Logging.Interfaces;
|
|
using System.Resources;
|
|
using XP.Scan.Views;
|
|
using Prism.Navigation.Regions;
|
|
|
|
namespace XP.Scan
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for App.xaml
|
|
/// </summary>
|
|
public partial class App
|
|
{
|
|
protected override Window CreateShell()
|
|
{
|
|
// 在创建窗口前初始化 LocalizationExtension,确保 XAML 标记扩展能获取到翻译
|
|
var localizationService = Container.Resolve<ILocalizationService>();
|
|
|
|
// 强制设置 UI 语言为中文(确保 ResourceManager 返回中文资源)
|
|
var zhCN = new System.Globalization.CultureInfo("zh-CN");
|
|
System.Globalization.CultureInfo.CurrentUICulture = zhCN;
|
|
System.Globalization.CultureInfo.CurrentCulture = zhCN;
|
|
|
|
LocalizationExtension.Initialize(localizationService);
|
|
LocalizationHelper.Initialize(localizationService);
|
|
|
|
// 注册 XP.Scan 模块的资源源 | Register XP.Scan module resource source
|
|
var scanResourceManager = new ResourceManager("XP.Scan.Resources.Resources", typeof(App).Assembly);
|
|
localizationService.RegisterResourceSource("XP.Scan", scanResourceManager);
|
|
|
|
return Container.Resolve<MainWindow>();
|
|
}
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
base.OnInitialized();
|
|
|
|
// 启动时导航到 XPScanView
|
|
var regionManager = Container.Resolve<IRegionManager>();
|
|
regionManager.RequestNavigate("ContentRegion", nameof(XPScanView));
|
|
}
|
|
|
|
protected override void RegisterTypes(IContainerRegistry containerRegistry)
|
|
{
|
|
// 初始化 Serilog
|
|
SerilogInitializer.Initialize(new SerilogConfig
|
|
{
|
|
LogPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "Logs")
|
|
});
|
|
|
|
// 日志服务
|
|
containerRegistry.RegisterSingleton<ILoggerService, SerilogLoggerService>();
|
|
|
|
// 本地化服务
|
|
containerRegistry.RegisterSingleton<ILocalizationConfig, LocalizationConfig>();
|
|
containerRegistry.RegisterSingleton<ILocalizationService, ResxLocalizationService>();
|
|
|
|
// Dump 服务
|
|
containerRegistry.RegisterSingleton<DumpConfig>(() => ConfigLoader.LoadDumpConfig());
|
|
containerRegistry.RegisterSingleton<IDumpService, DumpService>();
|
|
|
|
// 注册 XPScanView 用于区域导航
|
|
containerRegistry.RegisterForNavigation<XPScanView>();
|
|
}
|
|
|
|
protected override IContainerExtension CreateContainerExtension()
|
|
{
|
|
return new DryIocContainerExtension();
|
|
}
|
|
}
|
|
}
|