private static IEnumerable <CommandModuleInfo> ReflectModuleInfos(IEnumerable <Type> _modules) { var result = new List <CommandModuleInfo>(); foreach (var item in _modules) { var attribute = Helpers.AttributeHelper.GetAttribute(item); if (attribute == null) { continue; } var info = new CommandModuleInfo { ClassType = item, Alias = attribute.Alias, Description = attribute.Description }; result.Add(info); } return(result); }
private static void FillMethods(CommandModuleInfo item) { var methods = item.ClassType.GetMethods() .Select(x => new { Method = x, Attr = (CommandMethodAttribute)x.GetCustomAttribute(typeof(CommandMethodAttribute), false) }) .Where(x => x.Attr != null); foreach (var method in methods) { var methodInfo = new CommandMethodInfo { Alias = method.Attr.Alias, Description = method.Attr.Description, Method = method.Method }; item.Methods.Add(methodInfo); } }