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 }