2013-10-28 15 views
12

SignalRにこのような何かをする方法はあります:動的に選択されたSignalRクライアントメソッドをIHubContextから呼び出す方法はありますか?

public void CallClientMethod(string methodName, MyObject data) 
{ 
    var ctx = GlobalHost.ConnectionManager.GetHubContext<MyHub>(); 
    ctx.Clients.All.methodName(data); 

    // or alternatively 
    ctx.Clients.All.CallClientMethod(methodName, data); 
} 

上記の例では意図はなく、実際のメカニズムを示している - 私は、実行時に呼び出すのではなく、時間をコンパイルする方法を決定します。

答えて

25

あなたはこれを行うことができます。

素晴らしい
public void CallClientMethod(string methodName, MyObject data) 
{ 
    var ctx = GlobalHost.ConnectionManager.GetHubContext<MyHub>(); 
    IClientProxy proxy = ctx.Clients.All; 

    proxy.Invoke(methodName, data); 
} 
+0

、感謝 –

+1

は、メソッド名は引用符なしで使用すべきではありませんか?現在、すべてのメソッドは "methodName"と呼ばれています –

+0

Omg!私は長い間sooooのためにこれを探していた! :)ありがとう!! – aup

関連する問題