Console .NET étendue avec microsyntaxe à colorier, épinglage multiline, utilisation en position d'écriture et utiles les plus utiles. Il est conçu en mettant l'accent sur les performances pour une utilisation professionnelle dans des tâches complexes: un grand nombre de journaux asynchrones, avec la nécessité de mettre en évidence les données importantes et de résumé des broches. XConsole est sans danger pour le multitâche, sans danger pour le débordement de tampon de console (9000+ lignes), facile à utiliser.
Les caractéristiques principales sont affichées dans l'image suivante:
Par Package Manager ou en ajoutant une référence de package au fichier * .csproj. Plus de façons de voir sur la galerie Nuget.
PM> Install-Package XConsole
< PackageReference Include = " XConsole " Version = " 1.5.* " /> Un moyen simple de commencer à utiliser le xconsole est d'ajouter en using votre code. Après cela, vous pouvez rédiger Console comme d'habitude et obtenir toutes les fonctionnalités de xconsole. Alternativement, vous pouvez mettre à niveau un projet entier vers XConsole à la fois en ajoutant les lignes suivantes au fichier * .csproj.
// Safely upgrade a single code file to XConsole
using Console = Chubrik . XConsole . XConsole ; < ItemGroup >
<!-- Safely upgrade an entire project to XConsole -->
< Using Include = " Chubrik.XConsole " />
< Using Include = " Chubrik.XConsole.XConsole " Alias = " Console " />
</ ItemGroup > Cette astuce est idéale pour la mise à niveau d'une application de console régulière existante car XConsole est en arrière compatible avec la console standard. Après la mise à niveau, l'application ne modifiera pas son fonctionnement, sauf si vous souhaitez commencer à utiliser les fonctionnalités XConsole.
Pour colorer le texte avec des couleurs de console standard, vous devez ajouter un préfixe à une chaîne. Le préfixe se compose d'une ou deux lettres dénotant des couleurs, suivie d'un personnage ` fuite, après quoi le texte commence immédiatement. Notons la lettre de couleur du texte comme t et la lettre de couleur d'arrière-plan comme b . Dans ce cas, il existe trois motifs de préfixe: T` pour changer uniquement la couleur du texte, TB` pour modifier les couleurs de texte et d'arrière-plan, B` (espace au début) pour ne modifier que la couleur d'arrière-plan. Pour faire un message multicolore, divisez-le en parties avec des préfixes de couleur individuels et passez-les à une méthode WriteLine . Assurez-vous que vos messages ne seront pas rompus par d'autres fils.
Console . WriteLine ( "G`This line is colored using simple microsyntax" ) ; // Single color
Console . WriteLine ( [ "C`It is easy " , "Wb`to use many" , "R` colors in " , "Y`one message" ] ) ; // MulticolorLe tableau suivant montre toutes les couleurs de console standard et leurs désignations de lettres:
Si vous exécutez votre application sur Windows 10+ avec .NET 5+, des couleurs étendues sont disponibles:
using Chubrik . XConsole . StringExtensions ;
// Different ways to the same 24-bit color
Console . WriteLine ( "Orange text" . Color ( Color . Orange ) ) ; // Color structure
Console . WriteLine ( "Orange text" . Color ( 255 , 165 , 0 ) ) ; // Red, green & blue
Console . WriteLine ( "Orange text" . Color ( 0xFFA500 ) ) ; // Hexadecimal number
Console . WriteLine ( "Orange text" . Color ( "#FFA500" ) ) ; // Hexadecimal string
// Combinations of text and background colors
Console . WriteLine ( "Orange with an indigo background" . Color ( Color . Orange ) . BgColor ( Color . Indigo ) ) ;
Console . WriteLine ( ( "Lime with " + "a brown" . BgColor ( Color . Brown ) + " background" ) . Color ( Color . Lime ) ) ;
Console . WriteLine ( $ "Aqua with { "a navy" . BgColor ( Color . Navy ) } background" . Color ( Color . Aqua ) ) ; XConsole prend en charge la norme NO_COLOR avec une variable d'environnement et avec une propriété.
Console . NO_COLOR = true ; // Disable all colors Vous pouvez épingler un texte ci-dessous des messages de journal réguliers avec la méthode Pin . Le texte épinglé peut être statique ou dynamique, contenir une ou plusieurs lignes et bien sûr peut être colorée. La broche dynamique sera automatiquement mise à jour chaque fois que les méthodes Write ou WriteLine sont appelées. La broche est résistante à l'emballage des lignes et au débordement du tampon de console (9000+ lignes de journal).
Console . Pin ( "Simple static pin" ) ; // Simple static pin
Console . Pin ( [ "Y`Multicolor" , " static pin" ] ) ; // Multicolor static pin
Console . Pin ( "Multiline n static pin" ) ; // Multiline static pin
Console . Pin ( ( ) => "Simple pin, value=" + value ) ; // Simple dynamic pin
Console . Pin ( ( ) => [ "Y`Multicolor" , " pin, value=" , "C`" + value ] ) ; // Multicolor dynamic pin
Console . Pin ( ( ) => [ "Multiline pin, n value=" , "C`" + value ] ) ; // Multiline dynamic pin Vous pouvez également mettre à jour une broche dynamique manuellement à l'aide de la méthode UpdatePin . Pour supprimer une broche, appelez la méthode Unpin .
Console . UpdatePin ( ) ; // Update dynamic pin manually
Console . Unpin ( ) ; // Remove pin Xconsole fournit une structure ConsolePosition , qui est une position dans la zone du tampon de console. Il s'agit d'une fonctionnalité importante si vous avez beaucoup de messages de journal. Cette structure est résistante au débordement du tampon de console (9000+ lignes de journal) et pointe toujours vers la position correcte dans la zone du tampon de console. Chaque méthode Write et WriteLine renvoie une position de début et de fin. Vous pouvez les enregistrer et utiliser plus tard pour réécrire le texte ou ajouter du texte à la fin du message. Pour ce faire, ConsolePosition a sa propre méthode Write , qui renvoie une nouvelle position finale.
NB! La position finale de WriteLine signifie la position après le dernier caractère avant la rupture de la ligne.
var ( begin , end ) = Console . WriteLine ( "Hello, World!" ) ; // Write message and save positions
begin . Write ( "C`HELLO" ) ; // Rewrite part of text
end = end . Write ( " I'm here" ) ; // Add text to the end and update end position
end . Write ( "Y`!" ) ;
Vous pouvez également obtenir ou définir la position du curseur à l'aide de la propriété CursorPosition :
ConsolePosition position = Console . CursorPosition ; // Get cursor position
Console . CursorPosition = new ConsolePosition ( left : 15 , top : 5 ) ; // Set cursor position Readline a deux modes supplémentaires pour l'entrée sécurisée: masqué et caché. Le symbole du masque est personnalisable.
Console . ReadLine ( ConsoleReadLineMode . Masked ) ; // Masked ReadLine
Console . ReadLine ( ConsoleReadLineMode . Masked , maskChar : '#' ) ; // Masked ReadLine with custom mask
Console . ReadLine ( ConsoleReadLineMode . Hidden ) ; // Hidden ReadLine Le XConsole est sous licence sous la licence du MIT.