ReactiveMarbles.ObservableEvents.SourceGenerator 1.3.1

dotnet add package ReactiveMarbles.ObservableEvents.SourceGenerator --version 1.3.1                
NuGet\Install-Package ReactiveMarbles.ObservableEvents.SourceGenerator -Version 1.3.1                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的版本 Install-Package.
<PackageReference Include="ReactiveMarbles.ObservableEvents.SourceGenerator" Version="1.3.1" />                
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中以引用包。
paket add ReactiveMarbles.ObservableEvents.SourceGenerator --version 1.3.1                
#r "nuget: ReactiveMarbles.ObservableEvents.SourceGenerator, 1.3.1"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。请将其复制到交互式工具或脚本的源代码中,以引用此包。
// Install ReactiveMarbles.ObservableEvents.SourceGenerator as a Cake Addin
#addin nuget:?package=ReactiveMarbles.ObservableEvents.SourceGenerator&version=1.3.1

// Install ReactiveMarbles.ObservableEvents.SourceGenerator as a Cake Tool
#tool nuget:?package=ReactiveMarbles.ObservableEvents.SourceGenerator&version=1.3.1                

<a href="https://github.com/reactivemarbles/observableevents"> <img width="150" src="./images/logo.png"/> </a>

可观察事件生成器

本项目是一个 .NET 源生成器,可生成包含所有基类对象内所有事件的 IObservable<T>ObservableEvents 生成器会将程序集内的事件转换为观察者包装器,它基于 Pharmacist 并使用了 .NET 源生成器 技术。

NuGet 包

确保您的项目在 CSPROJ 内使用较新的 PackageReference。旧样式存在缺陷且应避免使用。有关如何 升级 的讨论,请参阅此处。

安装以下包以开始使用可观察事件。

名称 平台 NuGet
ReactiveMarbles.ObservableEvents.SourceGenerator 核心 - 库 CoreBadge

手动安装

在您的 .csproj 文件中包含以下内容

<PackageReference
    Include="ReactiveMarbles.ObservableEvents.SourceGenerator"
    Version="1.0.2"
    PrivateAssets="all" />

PrivateAssets 将阻止 ObservableEvents 源生成器被其他项目继承。

如何使用

基于实例

它在一个类中注入用于基于实例的事件的类到您的源代码中,这将暴露一个名为 Events() 的扩展方法。您需要包含命名空间 ReactiveMarbles.ObservableEvents 来访问扩展方法。您可以使用此方法从您的事件中获取 IObservable<T> 实例。

using ReactiveMarbles.ObservableEvents;

public void MyClass : INotifyPropertyChanged
{
  // Assumes this belong in a class with a event called PropertyChanged.
  public void RunEvents()
  {
      this.Events().PropertyChanged.Subscribe(x => Console.WriteLine($"The {x} property has changed"));
  }

  public event PropertyChangedEventHandler PropertyChanged;
}

静态事件

您必须在特定类的程序集级别上包含一个 GenerateStaticEventObservables 属性。这将生成与指定类同一命名空间中的类 RxEvents

[assembly: GenerateStaticEventObservablesAttribute(typeof(StaticTest))]
public static class StaticTest
{
    public static event EventHandler? TestChanged;
}
此软件包中没有支持的框架资产。

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

  • .NETStandard 2.0

    • 无依赖。

NuGet 包 (3)

显示依赖 ReactiveMarbles.ObservableEvents.SourceGenerator 的前 3 个 NuGet 包

下载
CrissCross.WPF.UI

ReactiveUI 的响应式导航框架

SignalRChatClient

Microsoft.AspNetCore.SignalR.Client 库的扩展

RxUIExt.WinUI

RxUIExt 的 WinUI 扩展和工具

GitHub 仓库 (7)

显示依赖 ReactiveMarbles.ObservableEvents.SourceGenerator 的前 5 个最受欢迎的 GitHub 仓库

仓库 星标
gui-cs/Terminal.Gui
.NET 的跨平台终端 UI 工具包
HMBSbige/NatTypeTester
测试当前网络的 NAT 类型(STUN)
database64128/youtube-dl-wpf
youtube-dl 和 yt-dlp 的简单 GUI 包装
HMBSbige/BilibiliLiveRecordDownLoader
Bilibili 直播录制
reactiveui/Camelotia
Cross-platform sample .NET GUI for cloud file management.
版本 下载 最后更新
1.3.1 33,060 10/2/2023
1.2.3 53,982 9/27/2022
1.1.4 38,314 8/29/2021
1.1.3 1,530 8/25/2021
1.0.10 697 5/31/2021
1.0.9 376 5/31/2021
1.0.8 353 5/31/2021
1.0.7 211 5/31/2021
1.0.6 211 5/31/2021
1.0.2 461 5/29/2021