« Application console » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
(→Liens) |
Aucun résumé des modifications |
||
Ligne 3 : | Ligne 3 : | ||
= Liens = | = Liens = | ||
* [[Command_Line_Parser_Library|Command Line Parser Library]] | * [[Command_Line_Parser_Library|Command Line Parser Library]] | ||
= Code = | = Code = | ||
Ligne 93 : | Ligne 92 : | ||
Console.ResetColor(); | Console.ResetColor(); | ||
</kode> | </kode> | ||
= [https://andrewlock.net/using-dependency-injection-in-a-net-core-console-application/ Using dependency injection in a .Net Core console application] = | |||
<kode lang='bash'> | |||
dotnet add package Microsoft.Extensions.DependencyInjection | |||
</kode> | |||
<filebox fn='Program.cs'> | |||
static void Main(string[] args) | |||
{ | |||
//setup our DI | |||
var serviceProvider = new ServiceCollection() | |||
.AddLogging() | |||
.AddSingleton<IFooService, FooService>() | |||
.AddSingleton<IBarService, BarService>() | |||
.BuildServiceProvider(); | |||
//configure console logging | |||
serviceProvider.GetService<ILoggerFactory>() | |||
.AddConsole(LogLevel.Debug); | |||
var logger = serviceProvider.GetService<ILoggerFactory>() | |||
.CreateLogger<Program>(); | |||
logger.LogDebug("Starting application"); | |||
//do the actual work here | |||
var bar = serviceProvider.GetService<IBarService>(); | |||
bar.DoSomeRealWork(); | |||
logger.LogDebug("All done!"); | |||
</filebox> |
Version du 24 mai 2020 à 20:04
Liens
Code
using System; namespace MonNS { class MaClasse { public static void Main(string[] args) { Console.WriteLine(""); } } } |
Read input
ConsoleKeyInfo keyInfo = Console.ReadKey(true); if (keyInfo.Key == ConsoleKey.Escape) { } |
Masquer la saisie d'un mot de passe
public static string ReadPassword() { string password = ""; ConsoleKeyInfo info = Console.ReadKey(true); while (info.Key != ConsoleKey.Enter) { if (info.Key != ConsoleKey.Backspace) { Console.Write("*"); password += info.KeyChar; } else if (info.Key == ConsoleKey.Backspace) { if (!string.IsNullOrEmpty(password)) { // remove one character from the list of password characters password = password.Substring(0, password.Length - 1); // get the location of the cursor int pos = Console.CursorLeft; // move the cursor to the left by one character Console.SetCursorPosition(pos - 1, Console.CursorTop); // replace it with space Console.Write(" "); // move the cursor to the left by one character again Console.SetCursorPosition(pos - 1, Console.CursorTop); } } info = Console.ReadKey(true); } // add a new line because user pressed enter at the end of their password Console.WriteLine(); return password; } |
Masquer la fenêtre de la Console
[DllImport("kernel32.dll")] private static extern IntPtr GetConsoleWindow(); [DllImport("user32.dll")] private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); private const int SW_HIDE = 0; private const int SW_SHOW = 5; var handle = GetConsoleWindow(); ShowWindow(handle, SW_HIDE); |
Couleurs
Console.BackgroundColor = ConsoleColor.DarkRed; Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("..."); Console.ResetColor(); |
Using dependency injection in a .Net Core console application
dotnet add package Microsoft.Extensions.DependencyInjection |
Program.cs |
static void Main(string[] args) { //setup our DI var serviceProvider = new ServiceCollection() .AddLogging() .AddSingleton<IFooService, FooService>() .AddSingleton<IBarService, BarService>() .BuildServiceProvider(); //configure console logging serviceProvider.GetService<ILoggerFactory>() .AddConsole(LogLevel.Debug); var logger = serviceProvider.GetService<ILoggerFactory>() .CreateLogger<Program>(); logger.LogDebug("Starting application"); //do the actual work here var bar = serviceProvider.GetService<IBarService>(); bar.DoSomeRealWork(); logger.LogDebug("All done!"); |