Example #1
0
        /// <summary>
        /// Go言語がMapをランダムにして来るのでソートする
        /// </summary>
        void FixParam(AllParameter parameter, bool fixSort, bool fixNumber)
        {
            if (fixSort)
            {
                parameter.ValueMapInt          = parameter.ValueMapInt.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value);
                parameter.ValueMapString       = parameter.ValueMapString.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value);
                parameter.ValueMapValueMessage = parameter.ValueMapValueMessage.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value);
            }
            if (fixNumber)
            {
                if (int.MaxValue < parameter.ValueInt64 || int.MinValue > parameter.ValueInt64)
                {
                    parameter.ValueInt64 = 0;
                }
                if (int.MaxValue < parameter.ValueUint64)
                {
                    parameter.ValueUint64 = 0;
                }

                if (int.MaxValue < parameter.ValueSint64 || int.MinValue > parameter.ValueSint64)
                {
                    parameter.ValueSint64 = 0;
                }
                if (int.MaxValue < parameter.ValueSfixed64 || int.MinValue > parameter.ValueSfixed64)
                {
                    parameter.ValueSfixed64 = 0;
                }
                if (int.MaxValue < parameter.ValueFixed64)
                {
                    parameter.ValueFixed64 = 0;
                }
            }
        }
Example #2
0
 public CommandInfo(MethodInfo info, CommandModuleInfo module)
 {
     Module       = module;
     MethodInfo   = info;
     Command      = info.GetCustomAttribute <Command>();
     AllParameter = MethodInfo.GetParameters().Select(parameterInfo => new CommandParameterInfo(parameterInfo)).ToArray();
     Parameter    = AllParameter.Where(parameter => parameter.CommandParameter.Index >= 0).OrderBy(parameter => parameter.CommandParameter.Index).ToArray();
 }