Почему SignalR не может привязать здесь аргументы?C#

Место общения программистов C#
Ответить
Anonymous
 Почему SignalR не может привязать здесь аргументы?

Сообщение Anonymous »

Я работаю над приложением WPF (клиентом), которое вызывает методы SignalR с помощью драйвера .NET SignalR следующим образом:

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

private void TEST_button_Click(object sender, RoutedEventArgs e) {
Global.SignalR?.InvokeAsync("Ping").Wait();
Global.SignalR?.InvokeAsync("Ding", 123).Wait();
}
Концентратор SignalR работает в приложении ASP.NET Core и выглядит следующим образом:

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

public class ChatHub(ILogger logger) : Hub {
public async Task Ping() {
logger.LogInformation("Ping!");
await Clients.Caller.SendAsync("Pong");
}

public async Task Ding(int x) {
logger.LogInformation($"Ding! {x}");
await Clients.Caller.SendAsync("Dong");
}
}
При нажатии кнопки тестирования появляется сообщение «Ping!» Сообщение отображается в выходных данных отладки сервера и вскоре после сообщения «Pong!» сообщение отображается в выходных данных отладки клиента.
Затем клиент выдает исключение при попытке вызвать «Ding» с сообщением:

Не удалось вызвать «Ding» из-за ошибки на сервере. InvalidDataException: ошибка привязки аргументов. Убедитесь, что типы предоставленных значений соответствуют типам вызываемого метода концентратора.)

Вместо этого я ожидал, что сервер выведет «Дин! 123 " без сбоев.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ments-here
Ответить

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

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

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

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

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