色素材、マルチラインピン留め、書き込み式、および最も便利なユーティルを塗りつぶした.NETコンソールを拡張しました。複雑なタスクでの専門的な使用のためのパフォーマンスに焦点を当てて設計されています。重要な要約データを強調する必要がある膨大な数の非同期ログです。 XConsoleはマルチタスクに安全で、コンソールバッファーオーバーフロー(9000以上のライン)に安全で、使いやすいです。
主な機能は、次の画像に示されています。
パッケージマネージャーによって、または *.csprojファイルへのパッケージ参照を追加します。 Nuget Galleryでより多くの方法をご覧ください。
PM> Install-Package XConsole
< PackageReference Include = " XConsole " Version = " 1.5.* " />XConsoleの使用を開始する簡単な方法は、コードにusingことです。その後、 Consoleを通常どおり書いて、XConsoleのすべての機能を取得できます。または、次の行を *.csprojファイルに追加することにより、プロジェクト全体を一度にxconsoleにアップグレードすることもできます。
// 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 >このトリックは、XConsoleが標準コンソールと逆方向に互換性があるため、既存の通常のコンソールアプリケーションのアップグレードに最適です。アップグレード後、アプリケーションはXConsole機能の使用を開始しない限り、その動作方法を変更しません。
標準のコンソール色でテキストを色付けするには、文字列にプレフィックスを追加する必要があります。接頭辞は、色を示す1つまたは2つの文字で構成され、その後に`文字」が続き、その後テキストがすぐに開始されます。テキストカラー文字をtとして、背景色の文字をbとして示しましょう。この場合、3つのプレフィックスパターンがあります。T`テキストT`色のみを変更し、 TB`テキストと背景色を変更し、 B` (最初のスペース)を変更して背景色のみを変更します。マルチカラーメッセージを作成するには、個々の色のプレフィックスを持つ部品に分割し、単一のレイトWriteLineメソッドに渡します。メッセージが他のスレッドによって壊れないことを確認してください。
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" ] ) ; // Multicolor次の表は、すべての標準コンソールの色とその文字の指定を示しています。
.NET 5+でWindows 10+でアプリケーションを実行している場合、拡張色を使用できます。
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 ) ) ; XConsolleは、環境変数とプロパティを使用して、 NO_COLOR標準をサポートしています。
Console . NO_COLOR = true ; // Disable all colors Pinメソッドを使用して、通常のログメッセージの下にいくつかのテキストをピン留めすることができます。ピン留めのテキストは静的または動的であり、1つ以上の線を含み、もちろん色付けできます。動的ピンは、 WriteまたはWriteLineメソッドが呼び出されるたびに自動的に更新されます。ピンは、ラインラッピングとバッファーオーバーフローをコンソール(9000以上のログライン)に耐性があります。
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 UpdatePinメソッドを使用して、動的ピンを手動で更新することもできます。ピンを取り外すには、 Unpinメソッドを呼び出します。
Console . UpdatePin ( ) ; // Update dynamic pin manually
Console . Unpin ( ) ; // Remove pin XConsoleは、コンソールバッファー領域内の位置であるConsolePosition構造を提供します。これは、ログメッセージがたくさんある場合に重要な機能です。この構造は、コンソールバッファーオーバーフロー(9000以上のログライン)に耐性があり、コンソールバッファー領域内の正しい位置を常に指しています。それぞれのWriteおよびWriteLineメソッドは、開始位置と終了位置を返します。それらを保存して、後でテキストを書き換えたり、メッセージの最後にテキストを追加したりすることができます。これを行うために、 ConsolePositionは独自のWrite方法があり、新しいエンド位置を返します。
nb! WriteLineの終了位置は、ラインが破損する前の最後のキャラクターの後の位置を意味します。
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`!" ) ;
また、 CursorPositionの位置を取得または設定することもできます。
ConsolePosition position = Console . CursorPosition ; // Get cursor position
Console . CursorPosition = new ConsolePosition ( left : 15 , top : 5 ) ; // Set cursor position ReadLineには、安全な入力のための2つの追加モードがあります。マスクと非表示です。マスクシンボルはカスタマイズ可能です。
Console . ReadLine ( ConsoleReadLineMode . Masked ) ; // Masked ReadLine
Console . ReadLine ( ConsoleReadLineMode . Masked , maskChar : '#' ) ; // Masked ReadLine with custom mask
Console . ReadLine ( ConsoleReadLineMode . Hidden ) ; // Hidden ReadLine XConsoleは、MITライセンスに基づいてライセンスされています。