internal static T Decode <T>(this Oni.InstanceDescriptor des) { List <IGenericMemberAcessor> l_members = new List <IGenericMemberAcessor>(); T l_val = default(T); l_members.Add(new MemberAcess <T>(u => l_val = u, () => l_val, typeof(T).Name)); Oni.Action <Oni.InstanceDescriptor> l_ides = null; System.Xml.XmlWriter l_w = new SWAGGYXmlWriter(l_members.GetEnumerator()); l_ides = u => { try { Debug.LogWarning("complex object : " + u.Name); Oni.Xml.GenericXmlWriter.Write(l_w, l_ides, u); } catch (System.Exception ee) { //Debug.Log(ee); //Debug.Log(des.IsPlaceholder); } }; Oni.Xml.GenericXmlWriter.Write(l_w, l_ides, des); l_w.Flush(); return(l_val); }
internal static MemoryStream AsXmlStream(this Oni.InstanceDescriptor des) { DateTime l_dt = DateTime.Now; Debug.LogWarning(des.DataSize); MemoryStream l_ms = new MemoryStream(des.DataSize); Round2.TXMP l_v = null; List <IGenericMemberAcessor> l_stt = new List <IGenericMemberAcessor>(); l_stt.Add ( new MemberAcess <Round2.TXMP> ( u => { l_v = u; }, () => l_v, "TXMP" ) ); System.Xml.XmlWriter l_w = new SWAGGYXmlWriter(l_stt.GetEnumerator());//System.Xml.XmlWriter.Create(l_ms); Oni.Action <Oni.InstanceDescriptor> l_ides = null; l_ides = u => { try { Oni.Xml.GenericXmlWriter.Write(l_w, l_ides, u); } catch (System.Exception ee) { throw; //Debug.Log(ee); //Debug.Log(des.IsPlaceholder); } }; Oni.Xml.GenericXmlWriter.Write(l_w, l_ides, des); l_w.Flush(); l_ms.Seek(0, SeekOrigin.Begin); Debug.Log("ASXMLSTREAM : " + (DateTime.Now - l_dt)); return(l_ms); }