コード例 #1
0
 /// <summary>
 /// 将配置的策略lua数据对象 转换成 C#策略对象
 /// </summary>
 /// <param name="policyValue">JSON数据对象</param>
 /// <param name="policyType">策略类型</param>
 /// <returns></returns>
 protected object GetPolicyValue(object policyValue, Type policyType)
 {
     if (policyValue.GetType() != policyType)
     {
         return(CommonExtensions.JsonToObjectNeedDefaultValue(JsonConvert.SerializeObject(policyValue), policyType));
     }
     return(policyValue);
 }
コード例 #2
0
        /// <summary>
        /// 加载sql的配置文件
        /// </summary>
        /// <param name="sqlConfig"></param>
        /// <param name="configFilePath"></param>
        /// <param name="encoding"></param>
        public static void LoadFile(this ISqlConfig sqlConfig, string configFilePath, Encoding encoding)
        {
            var config = CommonExtensions.JsonToObjectNeedDefaultValue <JsonConfigTableInfo>(File.ReadAllText(configFilePath, encoding));

            if (string.IsNullOrEmpty(config.Name))
            {
                config.Name = Path.GetFileNameWithoutExtension(configFilePath);
            }
            sqlConfig.AddOrCombine(config);
        }
コード例 #3
0
        protected void AddDefaultPolicy <T>(Type ptype, Func <T> getExecutorFunc, int priority,
                                            bool isAddPolicyObj = false)
        {
            var pname = _util.GetSqlConfigPolicyName(ptype);

            _policyMgr.PolicyTypes[pname] = ptype;
            //添加策略执行器
            if (getExecutorFunc != null)
            {
                _policyMgr.SetExecutor(pname, getExecutorFunc, priority);
            }
            //添加默认的全局策略对象
            if (isAddPolicyObj)
            {
                //使用JsonConvert目的为了生成默认的数据对象
                var policyObj = CommonExtensions.JsonToObjectNeedDefaultValue("{}", ptype);
                _policyMgr.GlobalPolicies[_util.GetSqlConfigPolicyName(ptype)] = (ISqlConfigPolicy)policyObj;
            }
        }