/// <summary> /// 格式化指定类型的配置表 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="config"></param> public void FormatConfig <T>(out T config) where T : AbsConfig, new() { config = new T(); string fileName = config.GetFileName <T>(); AbsConfig.E_ConfigType configType = config.ConfigType; switch (configType) { case AbsConfig.E_ConfigType.XML: config = FormatXMLConfig <T>(fileName); break; case AbsConfig.E_ConfigType.JSON: config = FormatJSONConfig <T>(fileName); break; case AbsConfig.E_ConfigType.TXT: config = FormatTxtConfig <T>(fileName); break; default: Debug.Log("Error: 没有指定的格式化方法,ConfigType不正确。"); break; } //反序列化没有调用构造函数,导致出来的Name等字段拿不到正确值 //如果需要值,手动调用Init;需要修改访问权限 //config.init(); }
/// 暴露出去调用反序列化的方法 public T FormatConfig <T>(string fileName, AbsConfig.E_ConfigType type) where T : AbsConfig, new() { switch (type) { case AbsConfig.E_ConfigType.XML: return(FormatXMLConfig <T>(fileName)); break; case AbsConfig.E_ConfigType.Json: return(FormatJsonConfig <T>(fileName)); break; case AbsConfig.E_ConfigType.Consten: return(FormatConstenConfig <T>(fileName)); break; default: throw new ArgumentOutOfRangeException("type", type, null); break; } }