c#json帮助类

 public class JsonFileHelper
 {
     public static string JsonConfigFileName = "SunSofteWareAppConfig.Json";

     #region 配置文件读写
     private static JsonSerializerSettings _settings = new JsonSerializerSettings
     {
         TypeNameHandling = TypeNameHandling.Auto, // 关键:自动保存类型信息
         Formatting = Formatting.Indented
     };
     /// <summary>
     /// 将配置对象写入程序执行目录指定名称的文件
     /// </summary>
     /// <param name="config">配置对象</param>
     /// <param name="strConfigFileFullPath">配置文件绝对路径</param>
     /// <returns></returns>
     public static string SaveConfig(object config, string strConfigFileFullPath)
     {
         string strRes = string.Empty;
         try
         {
             if (config == null)
             {
                 if (File.Exists(strConfigFileFullPath))
                 {
                     File.Delete(strConfigFileFullPath);
                 }
             }
             string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(config, _settings);
             File.WriteAllText(strConfigFileFullPath, strJson);
         }
         catch (Exception ex)
         {
             strRes = ex.Message;
         }
         return strRes;
     }

     /// <summary>
     /// 将配置对象写入程序执行目录指定名称的文件
     /// </summary>
     /// <param name="config">配置对象</param>
     /// <param name="strStartPath">文件存放目录</param>
     /// <param name="strConfigFileName">配置文件名称</param>
     /// <returns></returns>
     public static string SaveConfig(object config, string strStartPath, string strConfigFileName = null)
     {
         string strRes = string.Empty;
         string strFileName = string.IsNullOrEmpty(strConfigFileName) ? JsonConfigFileName : strConfigFileName;
         string strPath = Path.Combine(strStartPath, strFileName);
         return SaveConfig(config, strPath);
     }

     /// <summary>
     /// 读取配置文件的配置信息对象
     /// </summary>
     /// <typeparam name="T">泛型类型</typeparam>
     /// <param name="strConfigFileFullPath">配置文件的绝对路径</param>
     /// <returns></returns>
     public static T ReadConfig<T>(string strConfigFileFullPath) where T : class
     {
         T oRes = default(T);
         try
         {
             if (File.Exists(strConfigFileFullPath))
             {
                 string strJson = File.ReadAllText(strConfigFileFullPath);
                 if (!string.IsNullOrEmpty(strJson))
                 {
                     object oConvertRes = Newtonsoft.Json.JsonConvert.DeserializeObject<T>(strJson, _settings);
                     if (oConvertRes != null)
                     {
                         oRes = oConvertRes as T;
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             throw ex;
         }
         return oRes;
     }

     /// <summary>
     /// 读取配置对象信息
     /// </summary>
     /// <typeparam name="T">配置对象泛型类型信息</typeparam>
     /// <param name="strStartPath">程序启动路径</param>
     /// <param name="strName">配置文件名称</param>
     /// <returns></returns>
     public static T ReadConfig<T>(string strStartPath, string strName) where T : class
     {
         string strPath = Path.Combine(strStartPath, strName);
         return ReadConfig<T>(strPath);
     }

     #endregion
 }

 

posted @ 2025-11-18 22:27  家煜宝宝  阅读(4)  评论(0)    收藏  举报