gpt4 book ai didi

c# - 如何在 MyClass :Hub 中存储数据

转载 作者:太空宇宙 更新时间:2023-11-03 21:39:27 25 4
gpt4 key购买 nike

我正在使用 signalR 制作一个项目,我想存储一些数据,例如:

 Dictionary<string, string> UserAndConnectionId;

如果用户断开连接并重新连接,他的 connectionId 将会改变,我想根据他的激活组设置他的接口(interface)。

所以,我创建了这个类:Hub 和一些函数:

public class MyClass: Hub
{
private Dictionary<MyFirstObject, List<MySecondObject>> _reference { get; set; }
private int _count;

[HubMethodName("onConnected")]
public override Task OnConnected()
{
Debug.WriteLine("OnConnected");
List<MySecondObject> userList;

_reference = new Dictionary<MyFirstObject, List<MySecondObject>>();
userList = new List<MySecondObject>();
userList.Add(new MySecondObject("userId", "userName", Context.ConnectionId));
_reference.Add(new MyFirstObject("groupName", null), userList);

_count++;
return base.OnConnected();
}

[HubMethodName("onDisconnected")]
public override Task OnDisconnected()
{
Debug.WriteLine("OnDisconnected");
return base.OnDisconnected();
}

[HubMethodName("onReconnected")]
public override Task OnReconnected()
{
Debug.WriteLine("OnReconnected");
return base.OnReconnected();
}
}

显然,每个新客户端都会调用onConnected 函数和

_reference = new Dictionary<MyFirstObject, List<MySecondObject>>();

每次都会删除所有数据。所以我也尝试增加一个int _count。当我阅读 Debug.writeLine("Count:"+ _count); 时,我可以看到 int _count 每次都被重置。

你有没有临时存储一些数据的想法,比如 Dictionary<string, string> 在 MyClass 中?

最佳答案

我在多个 asp.net 示例中找到了我的解决方案:

private static Dictionary<MyFirstObject, List<MySecondObject>> _reference { get; set; }

我只需要添加 static 属性,让内存中的 _reference 可用并抛出组调用。

示例发现于:asp.net/signalR当作者谈论以下代码时:

private readonly static ConnectionMapping<string> _connections = 
new ConnectionMapping<string>();

希望对其他人有帮助:)

关于c# - 如何在 MyClass :Hub 中存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20099917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com