8

我是一名将应用程序移植到 .Net 世界的 Objective-C 开发人员。在我的 Obj-C 应用程序中,我使用 NSNotification 对象在少数对象之间进行异步通信。有没有办法在 .Net 世界中做类似的事情(更具体地说,使用 C# 语言)?基本方法是一个对象发布一个或多个对象监听的通知。

可能有一种明显的方法可以做到这一点,但我还没有找到它......

4

4 回答 4

7

在 C# 或 VB.NET 中使用委托是等效的语言集成功能。您可以通过定义或使用预定义的 Delegate 来定义可以发布和订阅的“通知”来创建事件。然后在您可以订阅和引发的类上定义一个事件。一旦您在此处找到 MSDN 文档,它就有一个很好的概述。一个很好的例子是here

于 2009-01-04T00:09:26.443 回答
1

您可能将 NSNotification 与 NSNotificationCenter 一起使用,它是Event Aggregator 模式的实现,它在 Prism 库中实现

于 2013-08-06T16:17:27.350 回答
1

使用 xcode 的 NSNotification,您可以发布任何类都可以接收的消息,只要您在类中实现了用于监听帖子的 NSNotification 对象......并声明观察者;)

这是您可以尝试的我的理论...在 C# 中,您可以尝试通过构造包含静态事件的静态类来创建自己的通知中心。然后在您的其他类中,您只需创建事件的一个实例。通过这样做,您可以重新创建与 Xcode 的 NSNotificationCenter 相同的行为。

你也试过这个吗?http://www.codeproject.com/Tips/438582/Csharp-NotificationCenter?msg=4398005#xx4398005xx

对不起任何错字!电话回复很尴尬!

于 2013-09-11T12:48:42.680 回答
0

NotificationCenter在 Nuget 包管理器中使用库。这个库的工作方式类似于 Objective-C 和 Swift NSNotificationCenter。一种通知分发机制,可以将信息广播给注册的观察者。

PM> Install-Package NotificationCenter

GitHub:

https://github.com/Husseinhj/NotificationCenter

于 2018-03-04T21:12:14.107 回答