/// <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; } } }
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(); }