public static IList <IOptionDetails> Build(Type type) { var list = new List <IOptionDetails>(); var propertyInfos = type.GetProperties(); foreach (var propertyInfo in propertyInfos) { var parameterAttribute = propertyInfo.GetCustomAttribute <ParameterAttribute>(); if (parameterAttribute != null) { var parameterInfo = OptionDetails.Create(propertyInfo, parameterAttribute); list.Add(parameterInfo); continue; } var optionAttribute = propertyInfo.GetCustomAttribute <OptionAttribute>(); if (optionAttribute != null) { var optionInfo = OptionDetails.Create(propertyInfo, optionAttribute); list.Add(optionInfo); continue; } } return(list); }
public static IOptionDetails Create(PropertyInfo propertyInfo, OptionAttribute attribute) { var optionDetails = new OptionDetails() { OptionType = OptionType.Option, PropertyInfo = propertyInfo, Required = attribute.Required, DefaultValue = attribute.DefaultValue, ShortName = attribute.ShortName, LongName = attribute.LongName, Description = attribute.Description, Position = attribute.Position, }; return(optionDetails); }