namespace Unosquare.Swan.Components { using System; /// /// Provides settings for . /// Based on CommandLine (Copyright 2005-2015 Giacomo Stelluti Scala and Contributors.). /// public class ArgumentParserSettings { /// /// Gets or sets a value indicating whether [write banner]. /// /// /// true if [write banner]; otherwise, false. /// public bool WriteBanner { get; set; } = true; /// /// Gets or sets a value indicating whether perform case sensitive comparisons. /// Note that case insensitivity only applies to parameters, not the values /// assigned to them (for example, enum parsing). /// /// /// true if [case sensitive]; otherwise, false. /// public bool CaseSensitive { get; set; } = false; /// /// Gets or sets a value indicating whether perform case sensitive comparisons of values. /// Note that case insensitivity only applies to values, not the parameters. /// /// /// true if [case insensitive enum values]; otherwise, false. /// public bool CaseInsensitiveEnumValues { get; set; } = true; /// /// Gets or sets a value indicating whether the parser shall move on to the next argument and ignore the given argument if it /// encounter an unknown arguments. /// /// /// true to allow parsing the arguments with different class options that do not have all the arguments. /// /// /// This allows fragmented version class parsing, useful for project with add-on where add-ons also requires command line arguments but /// when these are unknown by the main program at build time. /// public bool IgnoreUnknownArguments { get; set; } = true; internal StringComparison NameComparer => CaseSensitive ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase; } }