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"); } }