ZhanC.ArgumentParser 1.0.0

dotnet add package ZhanC.ArgumentParser --version 1.0.0
                    
NuGet\Install-Package ZhanC.ArgumentParser -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ZhanC.ArgumentParser" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ZhanC.ArgumentParser" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="ZhanC.ArgumentParser" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ZhanC.ArgumentParser --version 1.0.0
                    
#r "nuget: ZhanC.ArgumentParser, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ZhanC.ArgumentParser@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ZhanC.ArgumentParser&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=ZhanC.ArgumentParser&version=1.0.0
                    
Install as a Cake Tool

Parse the arguments from console

var reader = new ConsoleArgumentParser(typeof(TargetType), true);
var args = new string[] { "NamelessParameter1",
        "-StringProperty", "Value1",
        "-StringPropertyWithDescription", "Value2",
        "-IntegerProperty", "3",
        "-NullableIntegerProperty", "4",
        "-NullableIntegerPropertyWithDefault", "5",
        "-NullableIntegerPropertyRequired", "6",
        "-BoolProperty", //bool flag alone
        "-BoolProperty2", //bool flag with True
        "True",
        "-BoolProperty3", //bool flag with False
        "false",
        "NamelessParameter2"};

var actual = reader.ReadArguments<TargetType>(args);
Assert.Equal("Value1", actual.StringProperty);
Assert.Equal("Value2", actual.StringPropertyWithDescription);
Assert.Equal(3, actual.IntegerProperty);
Assert.Equal(4, actual.NullableIntegerProperty);
Assert.Equal(5, actual.NullableIntegerPropertyWithDefault);
Assert.Equal(6, actual.NullableIntegerPropertyRequired);
Assert.True(actual.BoolProperty);
Assert.True(actual.BoolProperty2);
Assert.Equal("NamelessParameter1", reader.ValueArguments[0]);
Assert.Equal("NamelessParameter2", reader.ValueArguments[1]);
Assert.Null(reader.Error);


public class TargetType
{
    [CmdLineArgument]
    public string? StringProperty { get; set; }

    [CmdLineArgument(Default = "This is cool")]
    public string? StringPropertyWithDefault { get; set; }

    [CmdLineArgument(Description = "This is also cool")]
    public string? StringPropertyWithDescription { get; set; }

    [CmdLineArgument]
    public int IntegerProperty { get; set; }

    [CmdLineArgument]
    public int? NullableIntegerProperty { get; set; }

    [CmdLineArgument(Default = -1000)]
    public int? NullableIntegerPropertyWithDefault { get; set; }

    [CmdLineArgument(IsRequired = true)]
    public int? NullableIntegerPropertyRequired { get; set; }

    [CmdLineArgument]
    public bool BoolProperty { get; set; }

    [CmdLineArgument]
    public bool BoolProperty2 { get; set; }

    [CmdLineArgument]
    public bool BoolProperty3 { get; set; }

    [CmdLineArgument(Default = true)]
    public bool BoolPropertyWithDefault { get; set; }
}
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 190 9/9/2024