Пример #1
0
        static void ParseLuaTable(tmTreeNode tree, LuaInterface.LuaTable table)
        {
            try
            {
                foreach (object index in table.Keys)
                {
                    LuaInterface.LuaTable luaItem = table[index] as LuaInterface.LuaTable;
                    if (null == luaItem)
                    {
                        continue;
                    }
                    TestItem aItem = new TestItem();
                    //Console.WriteLine("LuaInterface.LuaTable<{0}> <{1}>", index as string,luaItem.ToString());
                    foreach (object key in luaItem.Keys)
                    {
                        if (null == luaItem[key])
                        {
                            continue;
                        }
                        //error occur here.
                        //Console.WriteLine("LuaInterface.luaItem[{0}],[{1}]", key as string, luaItem[key].ToString());
                        aItem[key.ToString()] = luaItem[key].ToString();
                    }
                    tmTreeNode node = new tmTreeNode(aItem);

                    tree.AddChildNode(node);

                    LuaInterface.LuaTable sub = luaItem["sub"] as LuaInterface.LuaTable;

                    if (null != sub)
                    {
                        ParseLuaTable(node, sub);
                    }
                }
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message + "In ParseLuaTable");
            }
        }