Пример #1
0
        /// <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();
        }
Пример #2
0
        /// <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);
        }