using Microsoft.Extensions.Options ;
using Newtonsoft.Json ;
using System ;
using System.Collections.Generic ;
using System.IO ;
using System.Xml ;
#region << 版 本 注 释 >>
/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* 版 权 所 有 ( c ) 2024 WenJY 保 留 所 有 权 利 。
* CLR 版 本 : 4.0 . 30319.42000
* 机 器 名 称 : LAPTOP - E0N2L34V
* 命 名 空 间 : SlnMesnac . Config
* 唯 一 标 识 : 496f 8d 2 b - 70e3 - 4 a05 - ae18 - a9b0fcd06b82
*
* 创 建 者 : WenJY
* 电 子 邮 箱 : wenjy @mesnac . com
* 创 建 时 间 : 2024 - 03 - 27 21 : 58 : 35
* 版 本 : V1 . 0.0
* 描 述 :
*
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* 修 改 人 :
* 时 间 :
* 修 改 说 明 :
*
* 版 本 : V1 . 0.0
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /
#endregion << 版 本 注 释 >>
namespace SlnMesnac.Config
{
/// <summary>
/// 系统配置
/// </summary>
#pragma warning disable CS8618 // Non-nullable field 'Data' must contain a non-null value when exiting constructor. Consider declaring the field as nullable.
public class AppConfig : IOptions < AppConfig >
{
/// <summary>
/// 日志文件路径
/// </summary>
public string logPath { get ; set ; }
/// <summary>
/// Sql连接配置
/// </summary>
public List < SqlConfig > sqlConfig { get ; set ; }
/// <summary>
/// PLC连接配置
/// </summary>
public List < PlcConfig > plcConfig { get ; set ; }
/// <summary>
/// RFID连接配置
/// </summary>
public List < RfidConfig > rfidConfig { get ; set ; }
/// <summary>
/// Redis配置
/// </summary>
public string redisConfig { get ; set ; }
/// <summary>
/// 修改配置文件
/// </summary>
/// <param name="appConfig"></param>
public void SetValue ( AppConfig appConfig )
{
var jsonObject = JsonConvert . SerializeObject ( new
{
AppConfig = new
{
logPath = appConfig . logPath ,
SqlConfig = appConfig . sqlConfig ,
PlcConfig = appConfig . plcConfig ,
RfidConfig = appConfig . rfidConfig ,
RedisConfig = appConfig . redisConfig ,
}
} , Newtonsoft . Json . Formatting . Indented ) ;
var appSettingsPath = Path . Combine ( AppContext . BaseDirectory , "appsettings.json" ) ;
File . WriteAllText ( appSettingsPath , jsonObject ) ;
}
public AppConfig Value = > this ;
}
}