Spectre.Console.Extensions
v1.0.0

该项目的目的是通过一些利基功能扩展Spectre.Console插件。
IProgress适配器的进展。HttpClient的自动报告进展。DataTable的表。| 包裹 | 版本 | 描述 |
|---|---|---|
Spectre.Console.Extensions.Progress | iProgress适配器和HTTPClient报告。 | |
Spectre.Console.Extensions.Table | DataTable和数据集支持。 |
AnsiConsole.Progress的扩展
将Spectre Spinner与标准IProgress接口一起使用。
动机:插入接受IProgress的方法,以便报告是声明性的,熟悉的,方便的。
private static async Task RunSimpleExampleAsync ( )
{
await BuildProgress ( ) . StartAsync (
GenerateProgressTasks ,
( reporter ) => RunSpinnerWithIProgress ( reporter , TimeSpan . FromMilliseconds ( 500 ) ) ,
( reporter ) => RunSpinnerWithIProgress ( reporter , TimeSpan . FromSeconds ( 1 ) ) ) ;
// Collection of tasks to execute,
// every task corresponds to following delegates sequentially.
static IEnumerable < ProgressTask > GenerateProgressTasks ( ProgressContext ctx )
{
yield return ctx . AddTask ( "Task1" ) ;
yield return ctx . AddTask ( "Task2" ) ;
}
static async Task RunSpinnerWithIProgress (
IProgress < double > reporter ,
TimeSpan delay )
{
var capacity = 100 ;
var step = 10 ;
while ( capacity > 0 )
{
reporter . Report ( step ) ;
capacity -= step ;
await Task . Delay ( delay ) ;
}
}
}为给定的HttpClient和HttpRequestMessage运行进度。结果作为System.IO.Stream提供。
动机:下载某些东西并为此提供旋转器是一项普遍的任务。基本上,您甚至不想在这种情况下为报告。
var message = new HttpRequestMessage ( HttpMethod . Get , url ) ;
var http = new HttpClient ( ) ;
var description = "Downloading cats images" ;
await BuildProgress ( ) . StartAsync ( http , message , taskDescription : description , DownloadCallback ) ;
static async Task DownloadCallback ( Stream stream ) => { } ;
await BuildProgress ( )
. WithHttp ( http , request , description , DownloadCallback1 )
. WithHttp ( http , request , description , DownloadCallback2 )
. StartAsync ( ) ; Display System.Data.DataTable 。
System . Data . DataTable dataTable = DataTableFactory ( ) ;
var table = dataTable . FromDataTable ( ) . Border ( TableBorder . Rounded ) ;
AnsiConsole . Render ( ) ; 要查看Spectre.Console在操作中,请安装dotnet-示例全局工具。
> dotnet tool restore现在,您可以在此存储库中列出可用示例:
> dotnet example并举办一个示例:
> dotnet example iprogress有关更多详细信息,请参阅:
.
| -- Samples
| | -- DataSet
| | -- DataTable
| | -- Directory.Build.props
| | -- http-progress
| | -- iprogress
| ` -- iprogress-http-client-multiple-calls
... 版权所有©Alexey Nikiforov。
根据MIT许可提供的原样。有关更多信息,请参见许可。