2016-11-22 3 views
0

Я предполагаю, что это будет выглядеть следующим образом.Можно ли передать функцию с помощью SignalR?

сервера (C#):

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

Client (TS/JS):

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

Однако, с этим кодом fn является недействительным на сервере.

+2

Вы могли бы это был бы открыт для атак XSS – Liam

ответ

1

Кажется, это невозможно, так как ваши параметры должны быть сериализуемыми. Таким образом, вы можете - сериализовать параметры в известной структуре и генерировать функцию вызова на основе результата десериализации.