2015-08-23 2 views
0

Я использую signalR вызвать некоторые JavaScript методы с сервера, как так:Вызывающие методы клиента с именем установить во время выполнения

Clients.Client(connectionId).myJSMethodName(params); 

Клиент имеет тип динамического поэтому будем называть «myJSMethodName (Params)» функцию с этим точным именем из javascript.

Что я хотел бы сделать, так это назвать имя функции, установленное во время выполнения. Что-то вроде этого:

string myFunction = "helloWorld"; 
Clients.Client(connectionId)[myFunction](params); 

, который будет переводить на

Clients.Client(connectionId).helloWorld(params); 

Это не работает, и ни один

Clients.Client(connectionId).myFunction(params); 

, так как это будет вызывать функцию с именем «MYFUNCTION» вместо "Привет мир".

Любая помощь будет оценена по достоинству.

+0

'Clients.Client (ConnectionID) [туРипсЫоп] (PARAMS)' должен работать, если вызов 'клиентов .Client (connectionId) 'возвращает объект с функцией в нем. Какую ошибку вы получаете? – Will

+0

Невозможно применить индексирование с [] к выражению типа «Microsoft.AspNet.SignalR.Hubs.ConnectionIdProxy». – osmiumbin

ответ

0

Оказывается, что мне нужно, чтобы вызвать "Invoke" метод следующим образом:

string myFunction = "helloWorld"; 
Clients.Client(connectionId).Invoke(myFunction, params); 
Смежные вопросы