我完成了一堆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行是否与他们使用的行完全相同,而我却给出了对象引用错误?
错误消息指出,您正在尝试使用静态方法访问非静态Context属性,这是不可能的(有关更多信息,请参见Static Classes and Static Class Members)。解决此问题的一种方法是通过删除SendMessage
关键字使static
方法变为非静态。