Cocona
Micro-framework for .NET console application
...If a class (or record class) has a parameterized constructor, it is treated as part of the definition of a command method. Cocona has filter mechanism like ASP.NET Core's action filter. Filters allow custom processing before or after you run a command. If a constructor has parameters, Cocona injects an instance obtained from IServiceProvider into the parameter. Cocona provides support for shell command-line completion (also known as tab completion).