SignalR hub Context.ConnectionId 对象引用错误
SignalR hub Context.ConnectionId object reference error
我学习了很多有关 SignalR 和向特定客户端发送消息的教程。我得到以下信息:
错误:
An object reference is required for the non-static field, method, or property '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 行与他们使用的完全相同,但我的行给出了对象引用错误?
如错误消息所述,您正在尝试访问非静态 Context property in your static method, which is not possible (see Static Classes and Static Class Members 以获取更多信息)。解决此问题的一个选项是通过删除 static
关键字使 SendMessage
方法成为非静态方法。
我学习了很多有关 SignalR 和向特定客户端发送消息的教程。我得到以下信息:
错误:
An object reference is required for the non-static field, method, or property '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 行与他们使用的完全相同,但我的行给出了对象引用错误?
如错误消息所述,您正在尝试访问非静态 Context property in your static method, which is not possible (see Static Classes and Static Class Members 以获取更多信息)。解决此问题的一个选项是通过删除 static
关键字使 SendMessage
方法成为非静态方法。