星空网 > 软件开发 > ASP.net

重构Web Api程序(Api Controller和Entity)续篇

昨天有写总结《重构Web Api程序(Api Controller和Entity)》http://www.cnblogs.com/insus/p/4350111.html,把一些数据交换的移至OrderEntity类中去,并重构冗余代码。

有最后的4个私有方法中,其中有2个方法是实现序列化的,把List<T>序例后转存为json文件,另一个是把json文件反序列转换为泛型List<T>。
重构Web Api程序(Api Controller和Entity)续篇


考虑到将来在专案中,还可以有可以引用或使用到它们。Insus.NET把它们再重构到一个全新的Utility类中:
重构Web Api程序(Api Controller和Entity)续篇

void GenericListToJsonFile<T>(List<T> listT, string filePath)方法:

重构Web Api程序(Api Controller和Entity)续篇重构Web Api程序(Api Controller和Entity)续篇
public static void GenericListToJsonFile<T>(List<T> listT, string filePath)    {      using (FileStream fs = File.Open(filePath, FileMode.CreateNew))      using (StreamWriter sw = new StreamWriter(fs))      using (JsonWriter jw = new JsonTextWriter(sw))      {        jw.Formatting = Formatting.Indented;        JsonSerializer serializer = new JsonSerializer();        serializer.Serialize(jw, listT);      }    }

View Code


List<T> JsonFileToGenericList<T>(string filePath)函数:

重构Web Api程序(Api Controller和Entity)续篇重构Web Api程序(Api Controller和Entity)续篇
public static List<T> JsonFileToGenericList<T>(string filePath)    {      List<T> listT = new List<T>();      if (File.Exists(filePath))        listT = IoDeserialize<T>(filePath);      else      {        string physicalPath = HttpContext.Current.Server.MapPath(filePath);        if (File.Exists(physicalPath))          listT = IoDeserialize<T>(physicalPath);      }      return listT;    }

View Code


私有 List<T> IoDeserialize<T>(string filePath)函数:

重构Web Api程序(Api Controller和Entity)续篇重构Web Api程序(Api Controller和Entity)续篇
 private static List<T> IoDeserialize<T>(string filePath)    {      using (StreamReader sr = new StreamReader(filePath))      {        JsonTextReader jtr = new JsonTextReader(sr);        JsonSerializer se = new JsonSerializer();        object obj = se.Deserialize(jtr, typeof(List<T>));        return (List<T>)obj;      }    }

View Code

 

这样在OrderEntity.cs类别中,我们就可以删除下面2个方法或是函数:
重构Web Api程序(Api Controller和Entity)续篇


在相对应的引用此私有方法的代码,需要修改为JsonUtility.cs的方法:
重构Web Api程序(Api Controller和Entity)续篇

 




原标题:重构Web Api程序(Api Controller和Entity)续篇

关键词:web

web
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流