2016-10-12 6 views
1

У меня есть класс-концентратор с некоторыми методами, которые вызываются клиентом без проблем. Но что делать, если я хочу, чтобы вызвать метод класса в собственности хаба, например:Метод вызова класса в концентраторе с использованием 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"). Возможно ли это?

ответ

2

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

+0

Таким образом, единственная возможность заключается в размещении методов с таким же именем в хабе и вызове методов частного экземпляра SimpleClass в хабе в этих методах? –

+0

Вы также можете создать новый концентратор и вызвать его напрямую. Также обратите внимание, что экземпляры хабов являются volatile, т. Е. Они создаются каждый раз, когда вызывается метод хаба. – Pawel

+0

Проблема в том, что у меня есть репозиторий данных, и этот класс имеет более 20 методов. Я вынужден вручную скопировать все из репозитория и вызвать его в методах хаба. –