ConsoleCommands 1.0.6
dotnet add package ConsoleCommands --version 1.0.6
NuGet\Install-Package ConsoleCommands -Version 1.0.6
<PackageReference Include="ConsoleCommands" Version="1.0.6" />
<PackageVersion Include="ConsoleCommands" Version="1.0.6" />
<PackageReference Include="ConsoleCommands" />
paket add ConsoleCommands --version 1.0.6
#r "nuget: ConsoleCommands, 1.0.6"
#:package ConsoleCommands@1.0.6
#addin nuget:?package=ConsoleCommands&version=1.0.6
#tool nuget:?package=ConsoleCommands&version=1.0.6
ConsoleCommands
An easy to use .NET library for reading and executing console commands in dependency injection projects
Usage
Inherit CommandBase class and implement the Execute method with desired command's behavior. Command name to be used in the console is the same as your inherited class name, but in all lower letters.
Before startup, call the CC.ReadCommands method, providing dependency injection service provider. Now the library will intercept the console input and respond if a command (class) is found in the assembly. If not, it will show all available commands and their usage. It will read forever until the thread exits or the console is closed.
- You can also put a CancellationTokenSource in the DI container. If you do so, library will detect when a cancellation is requested and then it will stop intercepting commands.
Important: CommandBase inherited commands have to be in the same assembly as the CC.ReadCommands method is called.
Example
Example command AddUser:
internal class AddUser : CommandBase { public override string Syntax => base.Syntax + " <username>"; public override string Description => "add a new user"; public override string Execute(IServiceProvider provider, string[] args) { if (args.Length != 1 || string.IsNullOrWhiteSpace(args[0])) { return Usage; } Console.WriteLine("password: "); string? password = Console.ReadLine(); using var scope = provider.CreateScope(); scope.ServiceProvider.GetRequiredService<AuthService>().Register(new RegisterRequest(args[0], password ?? "")); return "success"; } }
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.