C# 以静态方法分组并向客户端发送消息
我有一个GroupManager类,在这个过程中,我想对人们进行分组,并从一个静态方法向他们发送消息,这可能吗 这是我的班级经理C# 以静态方法分组并向客户端发送消息,c#,signalr,static-methods,signalr-hub,object-reference,C#,Signalr,Static Methods,Signalr Hub,Object Reference,我有一个GroupManager类,在这个过程中,我想对人们进行分组,并从一个静态方法向他们发送消息,这可能吗 这是我的班级经理 public class GroupManager: Hub { // The dictionnary contains <userName, conectionId> private static Dictionary<string, string> _reference { get; set; } private
public class GroupManager: Hub
{
// The dictionnary contains <userName, conectionId>
private static Dictionary<string, string> _reference { get; set; }
private static void CreateRoom(string roomName)
{
foreach (var user in _reference)
{
// error
Groups.Add(user.Value, roomName);
Clients.Group(roomName).sendMessageToClient("user connected : " + user.Key);
}
}
}
公共类组管理器:集线器
{
//措辞包含
私有静态字典_引用{get;set;}
私有静态void CreateRoom(字符串roomName)
{
foreach(变量用户在_引用中)
{
//错误
添加(user.Value,roomName);
Clients.Group(roomName).sendMessageToClient(“用户连接:”+user.Key);
}
}
}
当我呼叫组时。添加
有一个错误:
非静态字段、方法或属性需要对象引用
客户端组出现相同错误
我理解这个问题,但我不知道如何获取中心的对象引用
谢谢
编辑:
为什么要将CreateRoom设置为静态?如果它是在静态数据上操作的,您不需要它是静态的(并且通过使它成为静态的,它就不能在实例数据上操作) 如果需要从集线器本身外部访问集线器,请参阅以下内容:
为什么要将CreateRoom设置为静态?如果它是在静态数据上操作的,您不需要它是静态的(并且通过使它成为静态的,它就不能在实例数据上操作) 如果需要从集线器本身外部访问集线器,请参阅以下内容: 从dictionary属性和CreateRoom方法中删除关键字“static” 静态方法无法对实例数据进行操作,这就是问题所在。从dictionary属性和CreateRoom方法中删除关键字“Static”
静态方法无法对实例数据进行操作,这就是问题所在。显示您的
客户端
类和组
方法实现。我没有编写组和客户端方法,它们来自Hub类继承我编辑了这篇文章,用于添加2个方法引用的屏幕截图展示你的客户机类和组方法实现。我没有编写组和客户机方法,它们来自Hub类Inheritance我编辑了这篇文章,用于添加2个方法引用的屏幕截图