Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }