我有标记为可序列化的实用程序类,我需要将其存储为会话变量。这是那个类:
[Serializable]
public class NameValuePair<TName, TValue>
{
public TName Name { get; set; }
public TValue Value { get; set; }
public NameValuePair(TName name, TValue value)
{
Name = name;
Value = value;
}
public NameValuePair() { }
}
我的 NancyModule 类无法正确反序列化 cookie,并且我得到一个空的 Request.Session 对象。
以下是 Session 的填充过程:
LoginModule 验证用户,然后填充会话:
Request.Session["UserId"] = user.Id;
Request.Session["TimeZoneId"] = user.TimeZoneId;
Request.Session["StandardStartTime"] = user.StandardStartTime;
Request.Session["StandardEndTime"] = user.StandardEndTime;
var nvp = new NameValuePair<string, int>() { Name = "Davie", Value = 777};
Request.Session["NVP"] = nvp;
在后续模块中,Session 对象为空。当我从 Session 中删除 nvp 对象时,反序列化会正确进行,并且我会取回我的值。任何见解都会有所帮助。