zoukankan      html  css  js  c++  java
  • Windows 8.1 序列化与反序列化

     1  /// <summary>
     2         /// 对象序列化成 XML String
     3         /// </summary>
     4         public static  void XmlSerialize<T>(T obj, string fieldTickefolderName, string fieldTicketName)
     5         {
     6             string xmlString = string.Empty;
     7             System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(T));
     8             using (MemoryStream ms = new MemoryStream())
     9             {
    10                 xmlSerializer.Serialize(ms, obj);
    11                 xmlString = Encoding.UTF8.GetString(ms.ToArray(), 0, ms.ToArray().Length);
    12             }
    13             XmlDocument xmlDocument = new XmlDocument();
    14             xmlDocument.LoadXml(xmlString);
    15             IAsyncOperation<StorageFolder> storageFolder =
    16                   ApplicationData.Current.LocalFolder.CreateFolderAsync(fieldTickefolderName, CreationCollisionOption.ReplaceExisting);
    17             IAsyncOperation<StorageFile> xmlStorageFile =
    18               ApplicationData.Current.LocalFolder.CreateFileAsync(fieldTickefolderName+"\"+fieldTicketName, CreationCollisionOption.ReplaceExisting);
    19              xmlDocument.SaveToFileAsync(xmlStorageFile.GetResults());
    20            
    21 
    22 
    23         }
     1  ///// <summary>
     2         ///// XML String 反序列化成对象
     3         ///// </summary>
     4         public static async Task<T> XmlDeserialize<T>(string fieldTickefolderName, string fieldTicketName)
     5         {
     6             try
     7             {
     8                 StorageFolder storageFolder = await ApplicationData.Current.LocalFolder.GetFolderAsync(fieldTickefolderName);
     9                 StorageFile xmlStorageFile =  await storageFolder.GetFileAsync(fieldTicketName);
    10 
    11                 var stream = await xmlStorageFile.OpenAsync(FileAccessMode.Read);
    12                 XmlLoadSettings xmlloadsettings = new XmlLoadSettings();
    13                 xmlloadsettings.ProhibitDtd = false;
    14                 xmlloadsettings.ResolveExternals = false;
    15                 XmlDocument doc = await XmlDocument.LoadFromFileAsync(xmlStorageFile, xmlloadsettings);
    16                 string xmlString = doc.GetXml();
    17                 T t = default(T);
    18                 System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(T));
    19                 using (Stream xmlStream = new MemoryStream(Encoding.UTF8.GetBytes(xmlString)))
    20                 {
    21                     using (XmlReader xmlReader = XmlReader.Create(xmlStream))
    22                     {
    23                         Object obj = xmlSerializer.Deserialize(xmlReader);
    24                         t = (T)obj;
    25                     }
    26                 }
    27                 return t;
    28 
    29             }
    30             catch (Exception ex)
    31             {
    32 
    33                 throw new Exception(ex.Message);
    34             }
    35             
    36         }
  • 相关阅读:
    error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
    E: 无法获得锁 /var/lib/apt/lists/lock
    卸载nginx
    服务器文件传输
    一些重要的sql命令
    设置某个字段的值是唯一的
    mysql注释的方法
    认证 (authentication) 和授权 (authorization) 的区别
    neutron_lib: 一个进程内的发布与订阅
    人工智能导论作业
  • 原文地址:https://www.cnblogs.com/Mengyl/p/3741530.html
Copyright © 2011-2022 走看看