加载配置文件优化
This commit is contained in:
@@ -17,14 +17,14 @@ namespace MainModule
|
|||||||
regionManager.RegisterViewWithRegion("ShellViewManager", typeof(MainView));
|
regionManager.RegisterViewWithRegion("ShellViewManager", typeof(MainView));
|
||||||
|
|
||||||
// 2. 给 3 个台架分别注入测试视图
|
// 2. 给 3 个台架分别注入测试视图
|
||||||
// 当你点击 "台架 1" 的 Tab 时,就会显示这个 AutomatedTestingView
|
// 当你点击 "台架 1" 的 Tab 时,就会显示这个 ProtocolStartView
|
||||||
regionManager.RegisterViewWithRegion("TestCell1", typeof(AutomatedTestingView));
|
regionManager.RegisterViewWithRegion("TestCell1", typeof(ProtocolStartView));
|
||||||
|
|
||||||
// 当你点击 "台架 2" 的 Tab 时,就会显示这个 AutomatedTestingView
|
// 当你点击 "台架 2" 的 Tab 时,就会显示这个 ProtocolStartView
|
||||||
regionManager.RegisterViewWithRegion("TestCell2", typeof(AutomatedTestingView));
|
regionManager.RegisterViewWithRegion("TestCell2", typeof(ProtocolStartView));
|
||||||
|
|
||||||
// 当你点击 "台架 3" 的 Tab 时,就会显示这个 AutomatedTestingView
|
// 当你点击 "台架 3" 的 Tab 时,就会显示这个 ProtocolStartView
|
||||||
regionManager.RegisterViewWithRegion("TestCell3", typeof(AutomatedTestingView));
|
regionManager.RegisterViewWithRegion("TestCell3", typeof(ProtocolStartView));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RegisterTypes(IContainerRegistry containerRegistry)
|
public void RegisterTypes(IContainerRegistry containerRegistry)
|
||||||
|
|||||||
@@ -69,6 +69,10 @@ namespace MainModule.ViewModels
|
|||||||
string json = System.IO.File.ReadAllText(filePath);
|
string json = System.IO.File.ReadAllText(filePath);
|
||||||
Newtonsoft.Json.JsonConvert.PopulateObject(json, _systemConfig);
|
Newtonsoft.Json.JsonConvert.PopulateObject(json, _systemConfig);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_systemConfig = new SystemConfig();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//容器解析顺序不要改变!!!
|
//容器解析顺序不要改变!!!
|
||||||
_scopedContext = _scope.Resolve<ScopedContext>();
|
_scopedContext = _scope.Resolve<ScopedContext>();
|
||||||
|
|||||||
@@ -29,52 +29,6 @@ namespace UIShare.GlobalVariable
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
/// <summary>
|
|
||||||
/// 根据标题(格子标识)加载独立的配置文件
|
|
||||||
/// </summary>
|
|
||||||
public static SystemConfig Load(string title)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(title))
|
|
||||||
{
|
|
||||||
throw new ArgumentException("配置标题不能为空", nameof(title));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 临时实例化一个对象以获取默认的 SystemPath
|
|
||||||
var dummy = new SystemConfig();
|
|
||||||
string configPath = Path.Combine(dummy.SystemPath, $"{title}.json");
|
|
||||||
|
|
||||||
if (!File.Exists(configPath))
|
|
||||||
{
|
|
||||||
// 如果不存在,创建一个带 Title 的默认配置并保存
|
|
||||||
var defaultConfig = new SystemConfig { Title = title };
|
|
||||||
EnsureDefaultCanDevice(defaultConfig);
|
|
||||||
Save(defaultConfig);
|
|
||||||
return defaultConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
lock (_fileLock)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
string json = File.ReadAllText(configPath);
|
|
||||||
var config = JsonConvert.DeserializeObject<SystemConfig>(json, new JsonSerializerSettings
|
|
||||||
{
|
|
||||||
TypeNameHandling = TypeNameHandling.All
|
|
||||||
});
|
|
||||||
|
|
||||||
config ??= new SystemConfig { Title = title };
|
|
||||||
EnsureDefaultCanDevice(config);
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
LoggerHelper.ErrorWithNotify(title, $"格子 [{title}] 配置加载失败: {ex.Message}");
|
|
||||||
var fallback = new SystemConfig { Title = title };
|
|
||||||
EnsureDefaultCanDevice(fallback);
|
|
||||||
return fallback;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 保存指定的配置实例
|
/// 保存指定的配置实例
|
||||||
|
|||||||
Reference in New Issue
Block a user