A game about forced loneliness, made by TACStudios
at master 61 lines 2.1 kB view raw
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}