示例#1
0
        /// <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();
        }
示例#2
0
        /// 暴露出去调用反序列化的方法
        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;
            }
        }