SignalR hub Context.ConnectionId Ошибка ссылки на объект - PullRequest
1 голос
/ 03 октября 2019

Я прошел кучу обучающих программ для SignalR и отправки сообщений конкретному клиенту. Я получаю следующее:

Ошибка:

Требуется ссылка на объект для нестатического поля, метода или свойства 'HubBase.Context'

Код:

public class ProgressHub : Hub
{

    public string msg = "Initializing and Preparing...";
    public int counter = 1;

    public static void SendMessage(string msg, int count)
    {
        var message = msg;
        var hubContext = GlobalHost.ConnectionManager.GetHubContext<ProgressHub>();
        //Context.ConnectionId throwing error
        hubContext.Clients.Client(Context.ConnectionId).sendMessage(string.Format(message), count); 
    }

    public void GetCountAndMessage()
    {
        Clients.Caller.sendMessage(string.Format(msg), counter);
    }
}

Не уверен, что я неправильно делаю строку Context.connectionId - это та же самая строка, которую они используют, но моя выдает ошибку ссылки на объект?

1 Ответ

1 голос
/ 03 октября 2019

Как говорится в сообщении об ошибке, вы пытаетесь получить доступ к нестатическому Context свойству в статическом методе, что невозможно (см. Статические классы и члены статического класса длядальнейшая информация). Чтобы решить эту проблему, можно сделать метод SendMessage нестатичным, удалив ключевое слово static.

...