cookie 可以包含字符串以外的数据

cookie can have data other than string

我有一个对象 class MeetingList 我想通过 cookie 传递这个对象,它在转换时给我错误

写 Cookie

HttpCookie cookies = new HttpCookie("QuickJumpCookie");
cookies["MeetingList"] = bal.GetMeetingList(personID, "Open").ToString();
Response.Cookies.Add(cookies);

阅读 Cookie

HttpCookie cookies = Request.Cookies["QuickJumpCookie"];
MeetingList ml = (MeetingList) cookies["MeetingList"]; <-- Error in this line

我想你应该序列化然后反序列化你的 MeetingList class

以某种格式(例如 JSON)在 cookie 中序列化您的对象,然后反序列化它。我个人使用这个 newtonsoft.com/json 库。你的代码看起来像

JsonConvert.SerializeObject(YourMeetingListObject) 

然后是

MeetingList ml = (MeetingList) JsonConvert.DeserializeObject(cookies["MeetingList"]) 

您尝试做的是将字符串转换为 class 的实例。不幸的是你不能那样做。请关注link:Convert String to Type in C#

您可以使用 JavaScriptSerializer class. More information: Turn C# object into a JSON string in .NET 4

示例:

HttpCookie cookies = new HttpCookie("QuickJumpCookie");
var serializer = new JavaScriptSerializer();
var serializedResult = serializer.Serialize(bal.GetMeetingList(personID, "Open"));
cookies["MeetingList"] = serializedResult;
Response.Cookies.Add(cookies);


HttpCookie cookies = Request.Cookies["QuickJumpCookie"];
MeetingList ml = serializer.Deserialize<MeetingList>(cookies["MeetingList"]);