Erweiterte .NET-Konsole mit Farbmikrosyntax, Multiline-Pinning, Writ-to-Position und nützlichsten Utils. Es wurde mit einem Fokus auf die Leistung für den professionellen Gebrauch in komplexen Aufgaben konzipiert: eine große Anzahl asynchroner Protokolle, mit der Notwendigkeit, wichtige und PIN -Zusammenfassungsdaten hervorzuheben. Xconsole ist sicher für Multitasking, sicher für den Überlauf von Konsolenpuffer (9000 mehr als Leitungen), einfach zu bedienen.
Die Hauptmerkmale sind im folgenden Bild angezeigt:
Per Paketmanager oder durch Hinzufügen von Paketreferenzen zu *.csproj -Datei. Weitere Möglichkeiten sehen Sie in der Nuget Gallery.
PM> Install-Package XConsole
< PackageReference Include = " XConsole " Version = " 1.5.* " /> Eine einfache Möglichkeit, die Verwendung des XConsole zu verwenden, erfolgt durch using zu Ihrem Code. Danach können Sie wie gewohnt Console schreiben und alle Funktionen von Xconsole erhalten. Alternativ können Sie ein ganzes Projekt gleichzeitig auf Xconsole aktualisieren, indem Sie die folgende Zeilen zur Datei *.csproj hinzufügen.
// 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 > Dieser Trick eignet sich hervorragend für die Aktualisierung einer vorhandenen regulären Konsolenanwendung, da Xconsole rückwärts kompatibel mit der Standardkonsole ist. Nach dem Upgrade ändert die Anwendung nicht so, wie sie funktioniert, es sei denn, Sie möchten die XConsole -Funktionen verwenden.
Um den Text mit Standardkonsolenfarben zu fördern, müssen Sie einer Zeichenfolge ein Präfix hinzufügen. Das Präfix besteht aus einem oder zwei Buchstaben, die Farben bezeichnen, gefolgt von einem nachverfolgenden ` , wonach der Text sofort beginnt. Bezeichnen wir den Textfarbenbuchstaben als t und den Hintergrundfarbe als b . In diesem Fall gibt es drei Präfixmuster: T` , um nur die Textfarbe zu ändern, TB` zu ändern, um Text- und Hintergrundfarben zu ändern, B` (Platz am Anfang), um nur die Hintergrundfarbe zu ändern. Um eine mehrfarbige Nachricht zu erstellen, teilen Sie sie auf Teile mit individuellen Farbpräfixen auf und geben Sie sie an eine einzelne WriteLine -Methode weiter. Stellen Sie sicher, dass Ihre Nachrichten nicht von anderen Threads unterbrochen werden.
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" ] ) ; // MulticolorDie folgende Tabelle zeigt alle Standardkonsolenfarben und deren Briefbezeichnungen:
Wenn Sie Ihre Anwendung unter Windows 10+ mit .NET 5+ ausführen, stehen Ihnen erweiterte Farben zur Verfügung:
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 unterstützt den NO_COLOR -Standard mit einer Umgebungsvariablen und einer Eigenschaft.
Console . NO_COLOR = true ; // Disable all colors Sie können einen Text unter regulären Protokollnachrichten mit der Pin -Methode festlegen. Pined Text kann statisch oder dynamisch sein, eine oder mehrere Zeilen enthalten und natürlich gefärbt werden. Die dynamische PIN wird jedes Mal automatisch aktualisiert, wenn die Write oder WriteLine aufgerufen werden. PIN ist gegen Leitungsverpackung und Konsolenpufferüberlauf (9000+ Protokolllinien).
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 Sie können auch eine dynamische PIN mit der UpdatePin -Methode manuell aktualisieren. Um einen Stift zu entfernen, rufen Sie die Unpin -Methode auf.
Console . UpdatePin ( ) ; // Update dynamic pin manually
Console . Unpin ( ) ; // Remove pin Xconsole bietet eine ConsolePosition , die eine Position innerhalb des Konsolenpufferbereichs darstellt. Dies ist eine wichtige Funktion, wenn Sie viele Protokollnachrichten haben. Diese Struktur ist resistent gegen den Überlauf des Konsolenpuffers (9000+ Protokolllinien) und zeigt immer auf die richtige Position innerhalb des Konsolenpufferbereichs. Jede Write und WriteLine -Methode gibt eine Start- und Endposition zurück. Sie können sie speichern und später verwenden, um den Text neu zu schreiben oder Text zum Ende der Nachricht hinzuzufügen. Dazu hat ConsolePosition eine eigene Write , die eine neue Endposition zurückgibt.
NB! Die Endposition der WriteLine bedeutet die Position nach dem letzten Charakter vor dem Zeilenumbruch.
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`!" ) ;
Sie können die Cursorposition auch mit der CursorPosition -Eigenschaft abrufen oder festlegen:
ConsolePosition position = Console . CursorPosition ; // Get cursor position
Console . CursorPosition = new ConsolePosition ( left : 15 , top : 5 ) ; // Set cursor position Readline enthält zwei zusätzliche Modi für sichere Eingaben: maskiert und versteckt. Das Maskensymbol ist anpassbar.
Console . ReadLine ( ConsoleReadLineMode . Masked ) ; // Masked ReadLine
Console . ReadLine ( ConsoleReadLineMode . Masked , maskChar : '#' ) ; // Masked ReadLine with custom mask
Console . ReadLine ( ConsoleReadLineMode . Hidden ) ; // Hidden ReadLine Das Xconsole ist unter der MIT -Lizenz lizenziert.