我是一名Objective-C开发人员,将应用程序移植到.Net世界。在我的Obj-C应用程序中,我使用NSNotification对象在少数对象之间进行异步通信。有没有办法在.Net世界中做类似的事情(更具体地说,使用C#语言)?基本方法是一个对象发布一个或多个对象侦听的通知。
这可能有一种显而易见的方法,但我还没有找到它......
答案 0 :(得分:7)
在C#或VB.NET中使用Delegates是等效的语言集成功能。您可以通过定义或使用预定义的委托来定义可以发布和订阅的“通知”来创建事件。然后在可以订阅和引发的类上定义一个事件。找到它后,MSDN文档会有一个很好的概述here。一个很好的例子是here。
答案 1 :(得分:1)
您可能在NSNotificationCenter中使用NSNotification,这是Event Aggregator pattern的实现,它是implemented in Prism library
答案 2 :(得分:1)
使用xcode的NSNotification,你可以发布一个可以被任何类接收的消息,只要你在类中实现了要监听帖子的NSNotification对象....并声明观察者;)
这是我可以尝试的理论...... 在C#中,您可以尝试通过构建包含静态事件的静态类来创建自己的通知中心。然后在其他类中,您只需创建事件的实例。通过这样做,您可以重新创建与Xcode的NSNotificationCenter相同的行为。
你也试过这个吗? http://www.codeproject.com/Tips/438582/Csharp-NotificationCenter?msg=4398005#xx4398005xx
抱歉任何拼写错误!通过电话回复很尴尬!答案 3 :(得分:0)
在Nuget Package Manager中使用NotificationCenter
库。该库的工作方式与Objective-C和Swift NSNotificationCenter类似。一种通知调度机制,可以向注册的观察者广播信息。
PM> Install-Package NotificationCenter
Github: