Пример #1
0
        public void DoConvert(ParamConvertConfig c, IContext context)
        {
            var arg      = c.Args.First();
            var delegte1 = EvalHelper.GetDelegate(context, arg);

            ParamConvertUtil.StoreToParams(context, c, delegte1.DynamicInvoke());
        }
Пример #2
0
        /// <summary>
        /// Args 0: 类型
        /// Args 1: 分割字符
        /// </summary>
        public void DoConvert(ParamConvertConfig c, IContext context)
        {
            object data;

            if (context.Params.TryGetValue(c.Name, out data) == false)
            {
                return;
            }

            Type desType;
            char splitChar = SqlKeyWorld.Split3;

            if (c.Args == null || c.Args.Length == 0)
            {
                desType = typeof(long);
            }
            else
            {
                desType = Type.GetType(c.Args.First());
                if (c.Args.Length > 1)
                {
                    splitChar = c.Args[1][0];
                }
            }

            var val    = data.ToString().Split(splitChar);
            var newVal = val.Select(v => System.Convert.ChangeType(v, desType)).ToArray();

            ParamConvertUtil.StoreToParams(context, c, newVal);
        }
        public static IParamConvert Create(ParamConvertConfig config)
        {
            IParamConvert handler;

            if (handlers.TryGetValue(config.ConvertType, out handler))
            {
                return(handler);
            }

            return(null);
        }
Пример #4
0
        public static void StoreToParams(IContext context, ParamConvertConfig c, object newVal)
        {
            var storeName = !string.IsNullOrEmpty(c.NewName) ? c.NewName : c.Name;

            if (!context.Params.ContainsKey(storeName))
            {
                context.Params.Add(storeName, newVal);
            }
            else
            {
                context.Params[storeName] = newVal;
            }
        }