#0060: 增加扫描模式模块功能;
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user