.net - .NET 的简单事件总线

标签 .net generics events c#-2.0 bus

我想制作一个非常简单的事件总线,它允许任何客户端订阅特定类型的事件,并且当任何发布者使用 EventBus.PushEvent() 在总线上推送事件时方法只有订阅该特定事件类型的客户端才会获取该事件。

我正在使用 C# 和 .NET 2.0。

最佳答案

Tiny Messenger 是一个不错的选择,我已经在实际项目中使用它 2.5 年了。来自 Wiki 的一些代码示例(链接如下):

发布

messageHub.Publish(new MyMessage());

订阅

messageHub.Subscribe<MyMessage>((m) => { MessageBox.Show("Message Received!"); });
messageHub.Subscribe<MyMessageAgain>((m) => { MessageBox.Show("Message Received!"); }, (m) => m.Content == "Testing");

代码位于 GitHub 上:https://github.com/grumpydev/TinyMessenger

维基在这里:https://github.com/grumpydev/TinyMessenger/wiki

它还有一个 Nuget 包

Install-Package TinyMessenger

关于.net - .NET 的简单事件总线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/368265/

相关文章:

sql - 使用数据库/sql 包创建通用代码?

java - 尽管返回类型已定义,通用方法定义仍包含 <T extends Class>?

Javascript ondblclick

c# - 如何检查字体是否支持特定样式

.net - 如何在 Visual Studio 2022 中创建物理文件夹

c# - 为什么 C# 构造函数不能推断类型?

c# - 为什么 C# 中的事件要带 (sender, EventArgs)?

javascript - 捕获事件和冒泡事件之间的区别

c# - 为什么我的隐私可以访问?

.net - System.Random 不断返回相同的值