internal static CommandOption Create(PropertyInfo propertyInfo, CommandMetadata commandMetadata, IEnumerable<IConverter> converters) { Guard.NotNull(propertyInfo, nameof(propertyInfo)); Guard.NotNull(commandMetadata, nameof(commandMetadata)); Guard.NotNull(converters, nameof(converters)); if (propertyInfo.ShouldBeIgnored()) { return null; } if (!propertyInfo.IsValidOptionProperty()) { throw new CommandLineParserException( Constants.ExceptionMessages.ParserExtractMetadataPropertyShouldBeWritableOrICollection( propertyInfo.Name, commandMetadata.Name)); } var commandOption = new CommandOption(propertyInfo, commandMetadata, converters); return commandOption; }
internal static string GetMultiValueIndicator(CommandOption commandOption) { if (commandOption.PropertyOption.PropertyType.IsCollectionType()) { return CollectionIndicator; } if (commandOption.PropertyOption.PropertyType.IsDictionaryType()) { return DictionaryIndicator; } return string.Empty; }