C#.NET Rx- System.Reactive在哪里?

我有一个密集的Java背景,所以请原谅我,如果我忽略了C#中明显的东西,但我的研究让我无处可去。 我正在尝试使用react nativeRx .NET库。 编译器并没有抱怨IObservable而是调用zip方法。 它正在抛出“……你错过了使用指令或汇编引用吗?”

我一直在浏览命名空间,但我找不到想要的东西。 我找不到System.Reactive ,如果使用它也会抛出错误,并且所有引用都已包含在此Windows 8.1应用程序中。 有人可以告诉我有什么问题吗?

 public sealed class EventEngine { private static readonly EventEngine singleton = new EventEngine(); public static EventEngine get() { return singleton; } public IObservable CurrentKey { get; set; } public IObservable CurrentScale { get; set; } public IObservable CurrentAppliedScale { get { return CurrentScale.zip(CurrentKey, (s, k) => AppliedScale.getAppliedScale(k, s)); } } private EventEngine() {} } 

*更新*

这是考虑答案输入后的工作版本。

 public sealed class EventEngine { private static readonly EventEngine singleton = new EventEngine(); public static EventEngine get() { return singleton; } public IObservable CurrentKey { get; set; } public IObservable CurrentScale { get; set; } public IObservable CurrentAppliedScale { get { return Observable.Zip(CurrentScale, CurrentKey, (s, k) => AppliedScale.getAppliedScale(s,k)); } } private EventEngine() {} } 

您可能没有为项目添加Rx所需的程序集引用 。 (引用程序集与导入名称空间不同!您已经知道名称空间是什么;程序集类似于JAR;代码部署/分发的最小单元。您的项目必须在内部定义的名称空间之前引用它它可以使用。)

编译器可能不会抱怨IObservableIObserver因为您的项目针对.NET Framework版本4或更高版本。 自.NET版本4以来,这两个接口已成为核心.NET Framework类库(FCL)的一部分。 (如果您针对早期的.NET版本,那么使用这些未定义的接口也会出错。)

除了这两个接口之外,Rx的每个部分都不包含在核心.NET FCL中,而是驻留在它们自己的(附加组件)程序集中。 您可以将它们添加到项目中,例如通过安装相应的NuGet包 :

  1. 在Visual Studio中,转到工具NuGet包管理器包管理器控制台

  2. 在NuGet控制台窗口中,在下拉列表Default project中选择目标项目(您要在哪里使用Rx)。

  3. 接下来,键入Install-Package System.Reactive并按Enter键 。 (注意:此包以前称为Rx-Main ;有关详细信息,请参阅此答案 。)

  4. 这将为您的项目添加System.Reactive.*程序集引用。

从版本3开始, Rx项目现在称为System.Reactive因为它“使NuGet包命名符合NuGet指南以及每个包中的主要命名空间。”

它可以通过搜索“System.Reactive”从NuGet下载,也可以在此处下载: https : //www.nuget.org/packages/System.Reactive/

这是项目的GitHub页面: https : //github.com/Reactive-Extensions/Rx.NET

包映射

  • Rx-Main System.Reactive
  • Rx-Core System.Reactive.Core
  • Rx-Interfaces System.Reactive.Interfaces
  • Rx-Linq System.Reactive.Linq
  • Rx-PlatformServices System.Reactive.PlatformServices
  • Rx-Testing Microsoft.Reactive.Testing

资源