015.Rx包的描述及从Nuget安装

在本节中,Rx示例使用与上一节中相同的StockTicker,但这次您将不再使用传统的标准.NET事件。相反,你将使用IObservable< T >,你将创建它,然后围绕它编写事件处理流。您将慢慢地在解决方案中添加一层又一层,直到您有一个完全运行的应用程序,它更易于阅读和扩展。

每一次旅程都是从第一步开始的。您将通过创建一个新项目(控制台应用程序即可)并添加Rx库来开始这段旅程。

一、选择Rx包

使用反应式扩展的第一步是将库添加到您的项目中。无论您是否编写Windows Presentation Foundation(WPF)应用程序,ASP。NET网站、Windows Communication Foundation(WCF)服务或简单的控制台应用程序,Rx可以在代码中使用,以使您受益。但您确实需要从项目中选择正确的库进行引用。

在这里插入图片描述
图2.4 Rx程序集是一组可移植类库(中间和底部)和平台特定库(左上)。

Rx库部署为一组可移植类库(PCL)和特定于平台的提供程序,您可以根据项目平台安装这些提供程序。如图2.4所示。

要向项目添加必要的引用,您需要从NuGet中选择适当的包,NuGet是一个. net包管理器,您可以轻松地从中搜索和安装包(通常包含库)。表2.2描述了在撰写本文时可以选择的Rx包,图2.5显示了NuGet包年龄管理器。

在这里插入图片描述
图2.5响应式扩展NuGet包。许多包在Rx之上添加了一些东西来标识Rx.NET-specific库。查找带有System前缀的包ID。确保发行商是微软。

2016年6月发布的Rx 3.0为添加了Rx支持.NET核心和通用Windows平台(UWP)。Rx.NET也加入了.NET基金会(www.dotnetfoundation.org/projects)。符合所使用的命名惯例.NET Core,Rx包被重命名以匹配其库名称,并且以前的Rx包现在隐藏在NuGet库中。

表2.2 Rx包

包名描述
System.Reactive.Interfaces(Rx-Interfaces prior to Rx 3.0)安装System.Reactive.Interfaces程序集,该程序集只包含其他Rx包所依赖的接口。
System.Reactive.Core (Rx-Core prior to Rx 3.0)安装System . Reactive . Core程序集,该程序集包括调度程序、可丢弃程序和其他程序的可移植实现。
System.Reactive.Linq(Rx-Linq prior to Rx 3.0)安装System.Reactive.Linq程序集。这是实现查询操作符的地方。
System.Reactive.PlatformServices (Rx-PlatformServices prior to Rx 3.0)安装System.Reactive.PlatformServices程序集。这是便携和非便携Rx包之间的粘合剂。
System.Reactive(Rx-Main prior to Rx 3.0)这是Rx的主要包,在大多数情况下都要安装它。它包括:System.Reactive.Interfaces,System.Reactive.Core,System.Reactive。Linq,System.Reactive.PlatformServices(将使用的特定启蒙提供者取决于项目平台)。
System.Reactive.Providers (Rx-Providers prior to Rx 3.0)将System.Reactive.Providers和System.Reactive.Core包一起安装。这包添加了iqobservable LINQ API操作符,允许在事件树上创建表达式树,以便查询提供程序可以将其转换为目标查询语言。这是Rx可查询的对应项。
System.Reactive.Windows.Threading(Rx-Xaml prior to Rx 3.0)将System.Reactive.Windows . threading程序集与System.Reactive.Core包一起安装。当你需要为任何支持XAML调度程序的平台(WPF、Silverlight、Windows Phone和Windows Store应用程序)添加UI同步类时,可以使用这个包。
System.Reactive.Runtime.Remoting(Rx-Remoting prior to Rx 3.0)与System.Reactive.Core一起安装System.Reactive.Runtime.Remoting 包中。使用这个包可以向.NET Remoting添加扩展,并将其公开为一个可观察序列。
System.Reactive.Windows.Forms / System.Reactive.WindowsRuntime(Rx-WPF/Rx-Silverlight/Rx-WindowsStore/ Rx-WinForms prior to Rx 3.0)特定于平台的包的子集。为平台类型添加UI同步类和Rx实用程序(如WinRT中的IAsyncAction和IAsyncOperationWithProgress)。
Microsoft.Reactive.Testing(Rx-Testing prior to Rx 3.0)支持编写响应式单元测试的Rx测试库。附录C包含了响应式单元测试的解释和示例。
System.Reactive.Observable.Aliases(Rx-Aliases prior to Rx 3.0)为某些查询操作符(如Map、FlatMap和Filter)提供别名。

大多数情况下,您将添加 System.Reactive包,因为它包含最常用的类型。当您编写特定的平台或技术时,您将添加补充包。

二、从Nuget安装Rx包
决定需要哪个软件包后,可以从软件包管理器对话框或软件包管理控制台进行安装。要单独使用 Package Manager控制台,请选择“工具”>“NuGet Package Manager”>“Package Manager控制台”。在控制台中,从Default project下拉列表中选择目标项目,如图2.6所示。

在控制台中,写入所需包的安装命令:

Install-Package [Package Name]

在这里插入图片描述
图2.6通过Package Manager控制台安装Rx库确保从Default project下拉列表中选择正确的安装项目。您还可以通过输入-ProjectName[项目名称]来定义项目。

在这里插入图片描述
图2.7 VS 2015中的NuGet包管理器通过输入名称①搜索所需的软件包,然后选择软件包并单击安装②。

安装包的另一个选项是通过Package Manager对话框框,如图2.7所示。这个UI允许您搜索包并查看它们以更方便用户的方式提供信息。右键单击项目并选择Manage NuGet包。输入软件包名称,选择要安装的软件包,然后单击“安装”。

安装NuGet软件包后,您可以编写Stock Monitor的Rx版本。你可以在GitHub仓库的书的源代码中找到整个代码:http://mng.bz/18Pr.

使用.NET Core运行示例的说明
微软最近宣布,我在这里描述的格式已经被弃用了(但会在过渡期间得到支持)。微软建议使用普通的csproj文件中添加了新的MSBuild内容(例如packagerreference)。使用.Net Core,您首先需要从www.microsoft /net/core安装最新版本。然后,在您最喜欢的工具(如Visual Studio 2015或Visual)中创建一个新项目Studio Code (https://code.visualstudio.com/docs/runtimes/dotnet)。
添加对系统的引用。通过更新项目内部的依赖项部分来更新react NuGet包。Json文件,如下所示:

 {
 	"version": "1.0.0-*",
 	"buildOptions": {
 	"debugType": "portable",
 	"emitEntryPoint": true
 	},
 "dependencies": { "System.Reactive": "3.0.0" },
 "frameworks": {
 	"netcoreapp1.0": {
 		"dependencies": {
 			"Microsoft.NETCore.App": {"type": "platform", "version": "1.0.0" }, 
 						},
 			"imports": "dnxcore50"
 					}
				 }
			}

最后,在命令提示符下运行dotnet restore命令。现在您已经配置了Rx项目。

——未完待续

——重庆教主(QQ23611316) 2024.05.19

——WPF中文网 wpfsoft.com

  • 28
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值