如下代码
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,静态变量不是全局唯一的,不属于类的吗?
静态变量不是全局唯一的,不属于类的吗?——对,修饰符仅仅有访问域的问题。
那为什么每次刷新页面的时候connectionMaps 就会初始化。
@灬丶: 我试验过,并不会初始化。。。你可以使用github上传代码吗?
麻烦整理一下问题排版
– 不如隐茶去 4年前