private IEnumerable <ArgumentInfo> GetOptionValuesForConstructor() { var firstCtor = _type .GetConstructors() .FirstOrDefault(); List <ArgumentInfo> argumentInfos = new ArgumentInfoCreator(_settings) .GetArgumentsFromMethod(firstCtor) .ToList(); foreach (ArgumentInfo argumentInfo in argumentInfos) { var optionInfo = (CommandOptionInfo)argumentInfo; optionInfo.SetValue(_app.Option( optionInfo.Template, optionInfo.AnnotatedDescription, optionInfo.CommandOptionType, _ => {}, optionInfo.Inherited, optionInfo.TypeDisplayName, optionInfo.DefaultValue, optionInfo.IsMultipleType, optionInfo.AllowedValues)); } return(argumentInfos); }
private IEnumerable <ArgumentInfo> GetOptionValuesForConstructor() { IEnumerable <ParameterInfo> parameterInfos = _type .GetConstructors() .FirstOrDefault() .GetParameters(); if (parameterInfos.Any(p => p.HasAttribute <ArgumentAttribute>())) { throw new AppRunnerException("Constructor arguments can not have [Argument] attribute. Please use [Option] attribute"); } ArgumentInfoCreator argumentInfoCreator = new ArgumentInfoCreator(_settings); List <ArgumentInfo> argumentInfos = new List <ArgumentInfo>(); foreach (var parameterInfo in parameterInfos) { argumentInfos.AddRange(argumentInfoCreator.ConvertToArgumentInfos(parameterInfo, ArgumentMode.Option)); } foreach (ArgumentInfo argumentInfo in argumentInfos) { var optionInfo = (CommandOptionInfo)argumentInfo; optionInfo.SetValue(_app.Option( optionInfo.Template, optionInfo.AnnotatedDescription, optionInfo.CommandOptionType, _ => {}, optionInfo.Inherited, optionInfo.TypeDisplayName, optionInfo.DefaultValue, optionInfo.IsMultipleType, optionInfo.AllowedValues)); } return(argumentInfos); }