是否可以通过SignalR传递函数?

时间:2016-11-22 16:39:51

标签: javascript c# .net signalr signalr-hub

我想它会如下所示。

服务器(C#):

public class MyHub : Hub {
    ...
    public int DoSomething(Func<int> fn) {
        var res = fn();
        return res;
    }
    ...
}

客户端(TS / JS):

myHub.invoke('DoSomething', () => 2 + 2).then(res => console.log(res));

但是,使用此代码fn在服务器上为空。

2 个答案:

答案 0 :(得分:1)

似乎这是不可能的,因为您的参数应该是可序列化的。所以你可以 - 在已知结构中序列化参数并根据反序列化结果生成调用函数。

答案 1 :(得分:0)

您可以在c#中编写函数并将其作为字符串传递回服务器,然后编译并运行它 - 这可能有助于编译: http://www.codeproject.com/Tips/715891/Compiling-Csharp-Code-at-Runtime