Вызов метода SignalR 2 по имени вместо динамического вызова с помощью C#C#

Место общения программистов C#
Ответить
Anonymous
 Вызов метода SignalR 2 по имени вместо динамического вызова с помощью C#

Сообщение Anonymous »

Я использую устаревшую версию SignalR 2 на ASP.NET (.NET Framework 4.6.2).
У меня есть серверный класс, в котором я вызываю метод в концентраторе «ReceiveChanges»:

Код: Выделить всё

LegacyHubContext.Clients.All.ReceiveChanges(name, args);
Из соображений масштабируемости и архитектуры мне нужно вызывать этот метод по имени, поэтому у меня будет строка MethodName, которая будет указывать вызываемый метод. Другими словами, мне нужно добиться того же поведения, которое я имел бы при использовании современного SignalR в .NET Core, в котором это разрешено:

Код: Выделить всё

HubContext.Clients.All.SendAsync(methodName, name, args);
Я пробовал использовать отражение, но, похоже, оно не работает:

Код: Выделить всё

MethodInfo method = HubContextLegacy.Clients.GetType().GetMethod("All." + methodName);
method?.Invoke(HubContextLegacy.Clients, new object[] {name, args});
имеет значение null (не найден).
Любая помощь будет оценена по достоинству.

Подробнее здесь: https://stackoverflow.com/questions/792 ... th-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»