Übergeben von stark typisierten Hubs in SignalR

8

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:

Server -Broadcast-mit-Signal

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:

%Vor%

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.

    
rism 26.08.2014, 06:29
quelle

3 Antworten

23

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> .

    
halter73 27.08.2014, 22:30
quelle
2

Oder werfen Sie einen Blick auf:

Ссылка

Es enthält mehr Funktionen als der oben erwähnte TypeSafeClient.

    
Edward 12.12.2014 08:09
quelle
0

Sehen Sie sich an:

Ссылка

Kann nützlich sein!

    
innovia 30.08.2014 10:50
quelle

Tags und Links