RxFree 1.1.3

dotnet add package RxFree --version 1.1.3                
NuGet\Install-Package RxFree -Version 1.1.3                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 修改。
<PackageReference Include="RxFree" Version="1.1.3">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中,以引用包。
paket add RxFree --version 1.1.3                
#r "nuget: RxFree, 1.1.3"                
#r 指令可用于 F# Interactive 和多语言笔记本。将其复制到交互工具或脚本的源代码中,以引用包。
// Install RxFree as a Cake Addin
#addin nuget:?package=RxFree&version=1.1.3

// Install RxFree as a Cake Tool
#tool nuget:?package=RxFree&version=1.1.3                

一个超轻量级 Rx 仅源代码 (C#) nuget,以避免使用 System.Reactive 的完整版本依赖 IObservable<T> 生产者。

100% 无依赖(基于源)支持,允许库作者暴露 IObservable<T>,利用 Subject<T>、CompositeDisposable、IObservable<T>.Subscribe 扩展方法重载、IObservable<T>.Select/Where/OfType LINQ 操作符等。

用法

所有为 Subject<T> 和提供的扩展方法(如 Subscribe 重载)编写的文档和示例(即官方可用的 System.Reactive)也适用于此项目,因为实现大量基于它(将其简化以仅包含源代码的必需品,Subject<T> 几乎完全相同)。例如:使用 Subject

using System;
using System.Reactive.Subjects;

var subject = new Subject<string>();

subject.Subscribe(x => Console.WriteLine($"Got raw value {x}"));

subject.Where(x => int.TryParse(x, out _))
    .Select(x => int.Parse(x))
    .Subscribe(x => Console.WriteLine($"Got number {x} (squared is {x * x})"));

subject.Where(x => bool.TryParse(x, out var value) && value)
    .Subscribe(x => Console.WriteLine($"Got a boolean True"));

while (Console.ReadLine() is var line && !string.IsNullOrEmpty(line))
    subject.OnNext(line);

如果您此项目中只使用 System.Reactive 中的最常用功能子集(也在此项目中提供),则此包是 System.Reactive 的直接替代。

原因

大多数人需要 Subject<T>(了解更多关于 使用 Subject)以及可能提供 Subscribe 重载的 ObservableExtensions 以提供 lambdas 而不是 IObserver<T>。在大多数情况下,仅为了获取可重用库所需的这些东西而承担相对较大且重要的依赖 System.Reactive 是多余的。

除了Subject<T>之外,生产者的典型活动包括处理一次性对象以及可能自身过滤/查询/转换它们所消耗的其他可观察对象。因此,以下简单功能被提供

  • Disposable.EmptyDisposable.Create(Action)
  • CompositeDisposable:允许批量取消订阅
  • Subject<T>:用于生成可观察的序列
  • IObservable<T>的扩展方法
    • 重载的Subscribe方法,接收onNext、onError和onCompleted的委托
    • SelectWhereOfType等LINQ运算符

项目当前以源形式提供这些功能,作为你项目内部的自实现使用类,没有任何外部依赖。这些类甚至在你项目中都是不可见的,因为NuGet会自动将它们提供给编译器,并将它们嵌入到你的程序集中,这样你就可以像处理项目中的任何其他代码一样进行完全调试。

赞助商

Clarius Org Kirill Osenkov MFB Technologies, Inc. Stephen Shaw Torutek DRIVE.NET, Inc. Daniel Gnägi Ashley Medway Keith Pickford Thomas Bolon Kori Francis Toni Wenzel Giorgi Dalakishvili Mike James Dan Siegel Reuben Swartz Jacob Foshee alternate text is missing from this package README image Eric Johnson Norman Mackay Certify The Web Ix Technologies B.V. David JENNI Jonathan Oleg Kyrylchuk Charley Wu Jakob Tikjøb Andersen Seann Alexander Tino Hager Mark Seemann Angelo Belchior Ken Bonny Simon Cropp agileworks-eu alternate text is missing from this package README image Zheyu Shen Vezel

赞助此项目  

了解有关GitHub赞助的更多信息

本包中没有支持的框架资源。

了解有关目标框架.NET Standard的更多信息。

  • .NETStandard 2.0

    • 无依赖项。

NuGet包

此包没有被任何NuGet包使用。

GitHub仓库

此包没有被任何流行GitHub仓库使用。

版本 下载 最后更新
1.1.3 163 1/24/2024
1.1.2 1,665 8/8/2022
1.1.1 696 7/26/2022
1.1.0 900 10/28/2021
1.0.5 639 9/27/2021
1.0.4 460 9/22/2021
1.0.3 280 9/22/2021