Вызов метода класса в концентраторе с помощью SignalR

У меня есть класс-хаб с некоторыми методами, которые вызываются клиентом без проблем. Но что делать, если я хочу вызвать метод класса в свойстве хаба, например:

Class MyHub
  Inherits Hub
  Sub HubMethod()
  End Sub
  Property SC As New SimpleClass
End Class

Class SimpleClass
  Sub DoNothing()
  End Sub
End Class  

Я хочу сделать что-то вроде myHubInstance.Invoke("SC.DoNothing"). Это вообще возможно?


person Ondřej    schedule 12.10.2016    source источник


Ответы (1)


Вы не можете этого сделать. Сервер SignalR обнаруживает концентраторы с помощью Reflection, проверяя, является ли тип производным от IHub.

person Pawel    schedule 12.10.2016
comment
Так что единственная возможность - поместить методы с тем же именем в хаб и вызывать методы частного экземпляра SimpleClass в хабе в этих методах? - person Ondřej; 13.10.2016
comment
Вы также можете создать новый концентратор и вызвать его напрямую. Также обратите внимание, что экземпляры концентратора являются изменчивыми, т. е. они создаются каждый раз, когда вызывается метод концентратора. - person Pawel; 13.10.2016
comment
Проблема в том, что у меня есть репозиторий данных, а в этом классе более 20 методов. Я вынужден вручную копировать все из репозитория и вызывать это в методах хаба. - person Ondřej; 14.10.2016