コード例 #1
0
ファイル: Extensions.cs プロジェクト: RonYanDaik/Oni-Round2
    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);
    }
コード例 #2
0
ファイル: Extensions.cs プロジェクト: RonYanDaik/Oni-Round2
    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);
    }