首页 新闻 会员 周边

类里面的构造函数会被初始化的问题。

-1
悬赏园豆:10 [待解决问题]

如下代码
public interface ISingalrSvc
{
}

public class SingalrSvc : ISingalrSvc
{
    private static ConcurrentDictionary<string, string> connectionMaps = new ConcurrentDictionary<string, string>();
  
    public void SetConnectionMaps(string connectionId, string value)
    {
        connectionMaps.AddOrUpdate(connectionId, value, (connectionId, value) => { return connectionId; });
    }
}

然后另一个类使用的时候通过构造函数注入,
public class SingalrService : Hub<ISingalrClient>
{
private ISingalrSvc _singalrSvc;
public SingalrService(ISingalrSvc singalrSvc)
{
_singalrSvc = singalrSvc;
}

    public void SetConnectionMaps(string account)
    {
        string connectionid = Context.ConnectionId;
        _singalrSvc.SetConnectionMaps(connectionid, account);
    }

}

为什么每次页面加载运行SetConnectionMaps的方法时,connectionMaps 就会变为0,静态变量不是全局唯一的,不属于类的吗?

灬丶的主页 灬丶 | 初学一级 | 园豆:2
提问于:2019-12-06 14:39

麻烦整理一下问题排版

不如隐茶去 4年前
< >
分享
所有回答(1)
0

静态变量不是全局唯一的,不属于类的吗?——对,修饰符仅仅有访问域的问题。

花飘水流兮 | 园豆:13560 (专家六级) | 2019-12-06 14:40

那为什么每次刷新页面的时候connectionMaps 就会初始化。

支持(0) 反对(0) 灬丶 | 园豆:2 (初学一级) | 2019-12-06 14:41

@灬丶: 我试验过,并不会初始化。。。你可以使用github上传代码吗?

支持(0) 反对(0) 心雨纷扬 | 园豆:309 (菜鸟二级) | 2019-12-07 09:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册