/// <summary> /// 注册Txt数据表 /// </summary> /// <param name="name"></param> /// <param name="txtStr"></param> public void RegisterTxtTable(string name, string[] txtStr) { if (_txtStructFolder == null) { App.logManager.Error("TableManager.RegisterTxtTable Error:TxtStructFolder has not set!"); return; } // 判断原型字典中是否存在该数据原型 ITxtDataTable txtDataTable = GetTxtDataTablePrototype(name); if (txtDataTable == null) { txtDataTable = (ITxtDataTable)ReflectionHelper.CreateInstance(_txtStructFolder + name); } if (txtDataTable == null) { return; } _txtDataTablePrototypeDict[name] = txtDataTable; // 获取数据表字典 Dictionary <int, ITxtDataTable> dict; if (_txtDataTableDict.TryGetValue(name, out dict) == false) { dict = _txtDataTableDict[name] = new Dictionary <int, ITxtDataTable>(); } // 根据原型生成新数据并填充数据 txtDataTable = txtDataTable.ClonePrototype(); dict[txtDataTable.FillData(txtStr)] = txtDataTable; txtDataTable.InitData(); }
/// <summary> /// 根据表名、ID获取Txt数据表 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="name"></param> /// <param name="ID"></param> /// <returns></returns> public T GetTxtDataTable <T>(string name, int ID) where T : ITxtDataTable { ITxtDataTable table = GetTxtDataTable(name, ID); return((T)table); }