C # /. Equivalente netto di NSNotification
-
03-07-2019 - |
Domanda
Sono uno sviluppatore di Objective-C che esegue il porting di un'applicazione nel mondo .Net. Nella mia applicazione Obj-C, utilizzo gli oggetti NSNotification per comunicare in modo asincrono tra una manciata di oggetti. C'è un modo per fare qualcosa di simile nel mondo .Net (in particolare, usando il linguaggio C #)? L'approccio fondamentale è che un oggetto pubblica una notifica che uno o più oggetti ascoltano.
Probabilmente esiste un modo ovvio per farlo, ma non l'ho ancora trovato ...
Soluzione
L'uso dei delegati in C # o VB.NET è la funzione integrata di linguaggio equivalente. Puoi creare eventi definendo o utilizzando un delegato predefinito per definire la "notifica" che può essere pubblicato e sottoscritto. Quindi definisci un evento in una classe a cui puoi iscriverti e rilanciare. La documentazione di MSDN ha una buona panoramica una volta trovata qui . Un buon esempio è qui .
Altri suggerimenti
Probabilmente usi NSNotification con NSNotificationCenter che è l'implementazione di Pattern aggregatore di eventi , è implementato nella libreria Prism
Con NSNotification di xcode puoi pubblicare un messaggio che può essere ricevuto da qualsiasi classe fintanto che hai implementato l'oggetto NSNotification all'interno della classe che deve ascoltare i post .... E dichiarare l'osservatore;)
Ecco la mia teoria che potresti provare ... In C # puoi provare a creare il tuo centro notifiche costruendo una classe statica contenente eventi statici. Quindi nelle altre classi, devi solo creare un'istanza degli eventi. in questo modo è possibile ricreare lo stesso comportamento di NSNotificationCenter di Xcode.
Hai provato anche questo? http://www.codeproject.com/Tips/438582/Csharp -NotificationCenter? msg = 4398005 # xx4398005xx
scusa per qualsiasi errore di battitura! La risposta per telefono è scomoda!
Utilizza la libreria NotificationCenter
in Nuget Package Manager. Questa libreria funziona come Objective-C e Swift NSNotificationCenter. Un meccanismo di invio di notifiche che consente la trasmissione di informazioni agli osservatori registrati.
PM> Install-Package NotificationCenter
Github: