13

有没有办法在 SignalR 中做这样的事情:

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);
}

上面的例子说明了意图,而不是实际的机制——我想确定在运行时调用的方法,而不是编译时。

4

1 回答 1

30

你可以这样做:

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

    proxy.Invoke(methodName, data);
}
于 2013-10-28T16:48:58.077 回答