Эквивалент NSNotification на C #/ .Net
-
03-07-2019 - |
Вопрос
Я разработчик Objective-C, портирующий приложение в .Сетевой мир.В моем приложении Obj-C я использую объекты NSNotification для асинхронной связи между несколькими объектами.Есть ли какой-нибудь способ сделать что-то подобное в .Сетевом мире (более конкретно, используя язык C #)?Фундаментальный подход заключается в том, что один объект отправляет уведомление, которое прослушивает один или несколько объектов.
Вероятно, есть очевидный способ сделать это, но я его пока не нашел...
Решение
Использование делегатов в C # или VB.NET является эквивалентной встроенной функцией языка.Вы можете создавать события, определяя или используя предопределенного делегата для определения "уведомления", которое можно публиковать и на которое можно подписаться.Затем определите событие в классе, на которое вы можете подписаться и вызывать его.Документация MSDN содержит хороший обзор, как только вы ее найдете здесь.Хорошим примером является здесь.
Другие советы
Вероятно, вы используете NSNotification с NSNotificationCenter, который является реализацией Шаблон агрегатора событий, это реализовано в библиотеке Prism
С помощью NSNotification xcode вы можете опубликовать сообщение, которое может быть получено любым классом, если у вас есть объект NSNotification внутри класса, который должен прослушивать сообщения....И объявить наблюдателем ;)
Вот моя теория, которую вы могли бы опробовать...В C # вы могли бы попробовать создать свой собственный центр уведомлений, создав статический класс, содержащий статические события.Затем в других ваших классах вы просто создаете экземпляр событий.сделав это, вы могли бы воссоздать то же поведение, что и NSNotificationCenter в Xcode.
Вы тоже пробовали это? http://www.codeproject.com/Tips/438582/Csharp-NotificationCenter?msg=4398005#xx4398005xx
извините за любую опечатку!Отвечать по телефону неудобно!
Использование NotificationCenter
библиотека в менеджере пакетов Nuget.Эта библиотека работает подобно Objective-C и Swift NSNotificationCenter.Механизм рассылки уведомлений, который позволяет транслировать информацию зарегистрированным наблюдателям.
PM> Install-Package NotificationCenter
Гитхаб :