zoukankan      html  css  js  c++  java
  • datacontract helper

        public static class DataContractHelper
        {
    
            public static void ToDCFile<T>(this T obj, string path)  
            {
                //路径
                FileStream fs = new FileStream(path, FileMode.Create);
                try
                {
                    DataContractSerializer s = new DataContractSerializer(typeof(T));
                    s.WriteObject(fs, obj);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                finally
                {
                    fs.Close();
                }
            }
    
            public static T FromDCFile<T>(string path)   
            {
                FileStream fs = new FileStream(path, FileMode.Open);
                try
                {
                    DataContractSerializer s = new DataContractSerializer(typeof(T));
                    var obj = s.ReadObject(fs);
                    return (T)obj;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return default(T);
                }
                finally
                {
                    fs.Close();
                }
    
            }
    
            public static string ToDCJsone<T>(this T obj)  where T:new()
            {
                string result = string.Empty;
                //路径
                MemoryStream ms = new MemoryStream();
                try
                {
                    DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(T));
                    s.WriteObject(ms, obj);
                    ms.Position = 0;
                    result = (new StreamReader(ms, Encoding.UTF8)).ReadToEnd();
                    return result;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return "";
                }
                finally
                {
                    ms.Close();
                }
            }
    
            public static T FromDCJsone<T>(string jsonStr)   
            {
                MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(jsonStr));
                try
                {
                    DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(T));
                    ms.Position = 0;
                    var obj = s.ReadObject(ms);
                    return (T)obj;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return default(T);
                }
                finally
                {
                    ms.Close();
                }
    
            }
    
        }
  • 相关阅读:
    MySQ随笔2(连接表、分组)
    MySQL随笔
    Python随笔1
    要学习但还没学的知识点2016年8月4号
    jQuery备忘录--私家版
    Chrome 中的彩蛋——T-Rex
    JavaScript多线程初步学习
    实例:jQuery实现标签切换
    实例:用jQuery实现垂直和水平下拉 菜单
    AJAX编程模板
  • 原文地址:https://www.cnblogs.com/nocanstillbb/p/10557464.html
Copyright © 2011-2022 走看看