Ich weiß, dass es Tutorials zu WCF-Callbacks und -Ereignissen gibt, aber ich habe Probleme, sie tatsächlich zu funktionieren, oder sie sind zu komplex. Ich bin ein echter Anfänger, also würde ich gerne hören, wenn jemand von soliden Einsteigertutorials weiß, die auf das ausgerichtet sind, was ich gerade herausfinden möchte. Bitte vergib mir, wenn ich die falsche Terminologie verwende (und bitte korrigiere mich), wie ich sagte, ich bin ein Anfänger.
Das Problem:
Es sieht vielleicht komplizierter aus als es wirklich ist. Grundsätzlich versuche ich zu erreichen:
Was ich tun kann:
Ich kann die Verbindung einrichten, aber mein Dienst ist auf eigenständige Funktionen beschränkt. Der Client kann zwar "Abfragen" durchführen, ist aber auf den Aufruf von Remote-Funktionen beschränkt (z. B. "Hinzufügen", bei dem alle Parameter mit der Funktion übergeben werden und die Verarbeitung intern erfolgt).
Was ich herausfinden möchte:
TLDR:
Host: Service & lt; - & gt; Klient. Gibt es eine Möglichkeit, Daten (einfach ein int) an den Client zu übertragen, ohne dass der Client irgendwelche Funktionen aufruft (keine Abfragen oder Abfragen)? Gibt es eine Möglichkeit, die WCF-Dienstzugriffsvariablen in der Instanz der Hostanwendung zu speichern, ohne statische Member zu verwenden? Kann dies auf einfache Weise erreicht werden?
Vielen Dank für Ihre Hilfe und Ihre Zeit, ich weiß, dass ich ein Buch geschrieben habe. Wenn jemand irgendwelche netten Tutorials kennt, bitte weisen Sie mich darauf hin. Aber bitte - weisen Sie mich nicht auf das Add (int x, int y) -Beispiel, in dem der Client nur add auf dem Host aufruft und das Ergebnis zurückgibt - das habe ich schon einige Male gemacht und es hilft mir nicht, die echte Funktionalität von WCF zu verstehen. Ich versuche wirklich nicht, zu diesem Zeitpunkt etwas Ernstes zu erreichen. Ich versuche wirklich, es einfach zu halten, damit ich lernen kann, was WCF kann, und ich finde die Dokumentation nicht sehr hilfreich. Danke nochmal an alle.
Im Allgemeinen wird WCF in einer Anforderungsantwort verwendet, bei der Clients Anfragen stellen; und Serverantworten. Was Sie erreichen wollen, ist ein "Push and Pull" -Dienst. oder in Microsoft-Termini ein Duplex-Service.
Bei Duplexdiensten verbinden sich die Clients einfach mit einem Dienst, und der Dienst registriert sie in einer internen Liste. Und immer wenn ein Ereignis (oder etwas anderes) auftritt, sendet es eine Nachricht an die registrierten Clients. Die Schlüsselbegriffe für WCF im Zusammenhang mit Ihrer Frage ist "Duplex-Dienste" (Sie können google es finden viele Ergebnisse). Sie können sich auf die folgenden Lernprogramme beziehen: msdn oder Codeprojekt
Für den zweiten Teil Ihrer Frage lautet die Antwort ja. Aber das ist nicht so einfach. Sie müssen einige "wcf-Verhaltensweisen" schreiben, zum Beispiel kann ein IInstanceProvider
Ihnen helfen. Für alle Anfragen können Sie die Dienstinstanz selbst erstellen, wobei die gewünschten Parameter in die Dienstinstanz eingefügt werden.
Folgendes kann hilfreich sein: stackoverflow oder msdn .
Die Frage ist ein bisschen weit und ich bin mir nicht 100% sicher, ob das eine direkte Antwort ist. Aber zumindest unter Verwendung der Schlüsselwörter finden Sie die richtige Richtung.