2009-01-03 9 views
6

Ich bin ein Objective-C-Entwickler, der eine Anwendung auf die .NET-Welt portiert. In meiner Obj-C-Anwendung verwende ich NSNotification-Objekte, um asynchron zwischen einer Handvoll Objekte zu kommunizieren. Gibt es einen Weg, etwas ähnliches in der .Net-Welt zu tun (genauer gesagt, mit der Sprache C#)? Der grundlegende Ansatz besteht darin, dass ein Objekt eine Benachrichtigung sendet, auf die ein oder mehrere Objekte warten.C# /. Net-Äquivalent von NSNotification

Wahrscheinlich gibt es eine offensichtliche Art und Weise, dies zu tun, aber ich habe es noch nicht gefunden ...

+1

Ich schrieb meine eigene 'NSNotificationCenter' Klasse in .NET, die funktioniert, soweit ich getestet, sehr ähnlich wie Objective-C. Wenn Sie noch interessiert sind, kann ich es auf GitHub hochladen und den Link posten. – FreeAsInBeer

Antwort

7

Delegierten in C# oder VB.NET ist die entsprechende Sprache integrierte Funktion. Sie können Ereignisse erstellen, indem Sie einen vordefinierten Delegaten definieren oder verwenden, um die "Benachrichtigung" zu definieren, die veröffentlicht und abonniert werden kann. Definieren Sie dann ein Ereignis in einer Klasse, die Sie abonnieren und erhöhen können. Die MSDN-Dokumentation hat einen guten Überblick, sobald Sie sie finden here. Ein gutes Beispiel ist here.

+0

@Scott: sieht aus, als ob du den gleichen Link zweimal benutzt hast ... –

+0

Danke. Ich habe es repariert. Nicht sicher, wie ich das gemacht habe: S –

+1

Diese Links sind tot. Wie wäre es mit dieser http://msdn.microsoft.com/en-us/library/17sde2xt(v=vs.90).aspx? – Jonny

1

Mit Xcode NSNotification können Sie eine Nachricht hinterlassen, die von jeder Klasse erhalten werden kann, solange Sie das NSNotification Objekt innerhalb der Klasse implementieren Das ist für die Beiträge zu hören .... Und erklären Sie den Beobachter;)

Hier ist meine Theorie, die Sie ausprobieren könnten ... In C# könnten Sie versuchen, erstellen Sie Ihre eigene Benachrichtigungszentrale durch Erstellen einer statischen Klasse mit statischen Ereignissen . In Ihren anderen Klassen erstellen Sie einfach eine Instanz der Ereignisse. Auf diese Weise können Sie dasselbe Verhalten wie das NSNotificationCenter von Xcode wiederherstellen.

Haben Sie das auch versucht? http://www.codeproject.com/Tips/438582/Csharp-NotificationCenter?msg=4398005#xx4398005xx

Entschuldigung für jeden Tippfehler! Telefonieren ist peinlich!

0

Verwenden Sie die Bibliothek NotificationCenter im Nuget Package Manager. Diese Bibliothek funktioniert wie Objective-C und Swift NSNotificationCenter. Ein Benachrichtigungsversandmechanismus, der die Übertragung von Informationen an registrierte Beobachter ermöglicht.

PM> Install-Package NotificationCenter 

Github:

https://github.com/Husseinhj/NotificationCenter