Ich habe gerade einige SignalR-Referenzen aktualisiert und die Dinge haben sich etwas geändert, um generisch typisierte Hubs Hub<T>
zu ermöglichen. In den vorhandenen Beispielen und Dokumentationen wie zum Beispiel:
Wir haben eine statische Klasse, die Verweise auf Clients über die folgenden Mechanismen enthält:
%Vor%Also wird eine statische Referenz überprüft und wenn Null ist erreicht sie:
%Vor%um eine Instanz zu erstellen und die Clients über den Konstruktor zu versorgen.
So funktionierte es früher und tatsächlich ist es wie oben in der URL. Aber jetzt mit Hub<T>
ist eine kleine Änderung im Konstruktor erforderlich:
Nun meine Frage ist, wie kann ich das weiter so erweitern, dass meine Version von StockTicker eine stark typisierte Eigenschaft für Clients vom Typ x haben kann.
%Vor%Durch die Eingabe stark typisierter Referenzen wäre ich in der Lage, stark typisierte Methoden usw. aufzurufen.
Es gibt jetzt eine neue Überladung von GetHubContext, die zwei generische Parameter benötigt. Der erste ist der Hub-Typ wie zuvor, aber der zweite generische Parameter ist TClient (was der T in Hub<T>
ist).
Angenommen, StockTickerHub ist wie folgt definiert:
%Vor%Dann
%Vor%wird
%Vor% Der Typ, der von der neuen Überladung zu GetHubContext zurückgegeben wird, wäre IHubContext<IClient>
und die Client-Eigenschaft wäre IHubConnectionContext<IClient>
anstelle von IHubConnectionContext<dynamic>
oder IHubConnectionContext<StockTickerHub>
.
Tags und Links c# asp.net signalr signalr-hub