大家好,欢迎来到IT知识分享网。
json文件:
{ "IsStrucuralCheacked":"False", "IsMechanicalChecked":"True", "IsOnlyVisibleChecked":"True", "IsWholeModelSelected":"True", "IsRangeSelected":"false", "IsLevelSelected":"false", "AnalysisScope":"3000", "Limitation":"2500", "MinHeight":"2300", "RoundValue":"10" }
1、根据json文件生成一个对象 —- ConfigEntity
public class ConfigEntity { public bool IsStrucuralCheacked { get; set; } public bool IsMechanicalChecked { get; set; } public bool IsOnlyVisibleChecked { get; set; } public bool IsWholeModelSelected { get; set; } public bool IsRangeSelected { get; set; } public bool IsLevelSelected { get; set; } public string AnalysisScope { get; set; } public string Limitation { get; set; } public string MinHeight { get; set; } public string RoundValue { get; set; } }
2、读取jiso文件里面的内容
public T GetConfigValue<T>(Func<ConfigEntity, T> selector) { string filePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\ConfigFiles\Config.json"; T result = default(T); // 读取配置文件内容 using (StreamReader reader = new StreamReader(filePath)) { string json = reader.ReadToEnd(); ConfigEntity config = JsonConvert.DeserializeObject<ConfigEntity>(json); // 根据传入的 selector 函数获取需要的配置项 result = selector(config); } return result; }
3、设置json文件里面的内容
/// <summary> /// 根据value设置配置文件里面的参数 /// </summary> /// <param name="value"></param> public void SetConfigValue<T>(Action<ConfigEntity, T> modifier, T value) { string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ConfigFiles", "Config.json"); // 读取配置文件内容 string json = File.ReadAllText(filePath); // 反序列化配置文件内容为 ConfigEntity 对象 ConfigEntity config = JsonConvert.DeserializeObject<ConfigEntity>(json); // 调用传入的 modifier 函数修改属性值 modifier(config, value); // 将修改后的对象序列化为 JSON 字符串 string updatedJson = JsonConvert.SerializeObject(config); // 将更新后的 JSON 字符串写入配置文件 File.WriteAllText(filePath, updatedJson); }
4、具体使用
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/158647.html