Sessions
a在哪里Dictionary<Guid, WebSession>
,我有这条线NewSession
:new WebSession()
Sessions.Add(NewSession.SessionID, NewSession);
现在,您可能正在转动您的眼球并认为“要么 Sessions 为空,要么 NewSession.SessionID 为空”。然而:
Sessions == null
false
NewSession.SessionID == null
false
NewSession == null
false
这是相当断断续续的。可能会发生 50 次。无论何时发生,我都可以Sessions.Add(NewSession.SessionID, NewSession);
在即时窗口中进行操作,并且效果很好。
for 的构造函数WebSession
是同步的,Sessions
是一个没有添加糖的普通字典。
我很确定我在这一点上已经做了尽职调查。这是在我的应用程序中发生的一件足够无害的事情,并且它被捕获并干净地处理 - 但我对首先导致它的原因感到困惑。
编辑:我想知道是不是因为我的WebSession
继承: Dictionary<String, Object>
但它的构造函数没有调用base()
- 虽然我可以在做之前检查对象不为空,但仍然无法解释它Add(..)