using System; using System.Collections.Generic; using System.Linq; using Base; namespace Model { /// /// 管理该所有的配置 /// /// public abstract class ACategory: ICategory where T : AConfig { protected Dictionary dict; public virtual void BeginInit() { this.dict = new Dictionary(); string configStr = ConfigHelper.GetText(typeof (T).Name); foreach (string str in configStr.Split(new[] { "\n" }, StringSplitOptions.None)) { try { string str2 = str.Trim(); if (str2 == "") { continue; } T t = MongoHelper.FromJson(str2); this.dict.Add(t.Id, t); } catch (Exception e) { throw new Exception($"parser json fail: {str}", e); } } } public Type ConfigType { get { return typeof (T); } } public virtual void EndInit() { } public T this[long type] { get { if (!this.dict.TryGetValue(type, out T t)) { throw new KeyNotFoundException($"{typeof(T)} 没有找到配置, key: {type}"); } return t; } } public T TryGet(int type) { if (!this.dict.TryGetValue(type, out T t)) { return null; } return t; } public T[] GetAll() { return this.dict.Values.ToArray(); } public T GetOne() { return this.dict.Values.First(); } } }