2016-11-22 6 views
0

私はそれが次のようになると思います。SignalRで関数を渡すことはできますか?

サーバー(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とサーバー上のnullです。

+2

あなたはそれがXSS攻撃に対してオープンになる可能性があり – Liam

答えて

1

パラメータがシリアル化可能であるため、これは不可能です。つまり、既知の構造でパラメータをシリアライズし、逆シリアル化の結果に基づいて呼び出し関数を生成することができます。あなたは、C#で関数を記述し、それをコンパイルして実行し、文字列として戻ってサーバーにそれを渡すことができ

関連する問題