색칠 한 .NET 콘솔은 Microsyntax, 멀티 린 고정, 쓰기 대 포지티브 및 가장 유용한 유틸리티를 갖춘 확장 된 .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 기능을 사용하지 않으면 응용 프로그램이 작동 방식을 변경하지 않습니다.
표준 콘솔 색상으로 텍스트를 채색하려면 문자열에 접두사를 추가해야합니다. 접두사는 색상을 나타내는 하나 또는 두 개의 글자로 구성되며, 뒤로 ` 캐릭터가 이어지고 텍스트가 즉시 시작됩니다. 텍스트 컬러 레터를 t 로 표시하고 배경색 문자를 b 로 표시합시다. 이 경우, 텍스트 색상 만 변경하려면 T` , 텍스트 및 배경색을 변경하려면 B` TB` 처음의 공간)를 변경하려면 배경색 만 변경하려면 세 가지 접두사 패턴이 있습니다. 멀티 컬러 메시지를 만들려면 개별 색상 접두사가있는 부품으로 분할하여 단일 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 ) ) ; Xconsole은 환경 변수 및 속성을 사용하여 NO_COLOR 표준을 지원합니다.
Console . NO_COLOR = true ; // Disable all colors Pin 메소드로 정기 로그 메시지 아래에 일부 텍스트를 고정 할 수 있습니다. 고정 된 텍스트는 정적이거나 역동적 일 수 있고 하나 이상의 줄을 포함하며 물론 색상을 채색 할 수 있습니다. Dynamic PIN은 Write 또는 WriteLine 메소드가 호출 될 때마다 자동으로 업데이트됩니다. PIN은 라인 랩핑 및 콘솔 버퍼 오버플로 (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에는 보안 입력을위한 두 가지 추가 모드 인 마스크 및 숨겨진 모드가 있습니다. 마스크 기호는 사용자 정의 할 수 있습니다.
Console . ReadLine ( ConsoleReadLineMode . Masked ) ; // Masked ReadLine
Console . ReadLine ( ConsoleReadLineMode . Masked , maskChar : '#' ) ; // Masked ReadLine with custom mask
Console . ReadLine ( ConsoleReadLineMode . Hidden ) ; // Hidden ReadLine Xconsole은 MIT 라이센스에 따라 라이센스가 부여됩니다.