/// <summary> /// 注册JSON数据表 /// </summary> /// <param name="name"></param> /// <param name="xmlStr"></param> public void RegisterXMLTable(string name, string xmlStr) { if (_xmlStructFolder == null) { App.logManager.Error("TableManager.RegisterXMLTable Error:XMLStructFolder has not set!"); return; } // 判断原型字典中是否存在该数据原型 IXMLTable xmlTable = GetXMLTablePrototype(name); if (xmlTable == null) { xmlTable = (IXMLTable)ReflectionHelper.CreateInstance(_xmlStructFolder + name); } if (xmlTable == null) { return; } _xmlTablePrototypeDict[name] = xmlTable; // 获取数据表字典 Dictionary <int, IXMLTable> dict; if (_xmlTableDict.TryGetValue(name, out dict) == false) { dict = _xmlTableDict[name] = new Dictionary <int, IXMLTable>(); } // 根据原型生成新数据并填充数据 xmlTable = xmlTable.ClonePrototype(); dict[xmlTable.FillData(xmlStr)] = xmlTable; xmlTable.InitData(); }
/// <summary> /// 根据表名、ID获取XML数据表 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="name"></param> /// <param name="ID"></param> /// <returns></returns> public T GetXMLTable <T>(string name, int ID) where T : IXMLTable { IXMLTable table = GetXMLTable(name, ID); return((T)table); }