A game about forced loneliness, made by TACStudios
1using System;
2using System.Collections.Generic;
3using System.IO;
4using System.Xml;
5using System.Xml.Serialization;
6
7
8namespace UnityEditor.U2D.Animation
9{
10 internal class SkinningXMLSerializer : ISkinningSerializer
11 {
12 public bool CanDeserialize(string data)
13 {
14 bool result = false;
15 try
16 {
17 using (TextReader textReader = new StringReader(data))
18 {
19 using (XmlTextReader xmlReader = new XmlTextReader(textReader))
20 {
21 var xmlSerializer = new XmlSerializer(typeof(List<UnityEngine.U2D.SpriteBone>));
22 result = xmlSerializer.CanDeserialize(xmlReader);
23 }
24 }
25 }
26 catch
27 {
28 }
29 return result;
30 }
31
32 public SkinningCopyData Deserialize(string data)
33 {
34 SkinningCopyData skinningCopyData;
35 using (TextReader textReader = new StringReader(data))
36 {
37 using (XmlTextReader xmlReader = new XmlTextReader(textReader))
38 {
39 var xmlSerializer = new XmlSerializer(typeof(SkinningCopyData));
40 if (!xmlSerializer.CanDeserialize(xmlReader))
41 {
42 throw new InvalidOperationException(
43 "Unable to deserialize system copy buffer to Skinning Copy Data");
44 }
45 skinningCopyData = (SkinningCopyData)xmlSerializer.Deserialize(xmlReader);
46 }
47 }
48 return skinningCopyData;
49 }
50
51 public string Serialize(SkinningCopyData skinningData)
52 {
53 XmlSerializer xmlSerializer = new XmlSerializer(skinningData.GetType());
54 using (StringWriter textWriter = new StringWriter())
55 {
56 xmlSerializer.Serialize(textWriter, skinningData);
57 return textWriter.ToString();
58 }
59 }
60 }
61}