C# 如何将列表或IEnumerable标记为可序列化?
我有一个列表要存储在SqlServer模式下的会话中C# 如何将列表或IEnumerable标记为可序列化?,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个列表要存储在SqlServer模式下的会话中 [Serializable] public class ModelStateSummary { public string PropertyName { get; set; } public string[] ErrorMessages { get; set; } } 设置会话 var list = new List<ModelStateSummary> {...}; Session["ModelStateSum
[Serializable]
public class ModelStateSummary
{
public string PropertyName { get; set; }
public string[] ErrorMessages { get; set; }
}
设置会话
var list = new List<ModelStateSummary> {...};
Session["ModelStateSummaryModel"] = list;
var stateSummaries = Session["ModelStateSummaryModel"] as IEnumerable<ModelStateSummary>;
var list=新列表{…};
会话[“ModelStateSummaryModel”]=列表;
但是当我试图从会话中检索模型时
var list = new List<ModelStateSummary> {...};
Session["ModelStateSummaryModel"] = list;
var stateSummaries = Session["ModelStateSummaryModel"] as IEnumerable<ModelStateSummary>;
var statesumeries=会话[“ModelStateSummaryModel”]作为IEnumerable;
我错了,说
异常类型:System.Runtime.Serialization.Serialization异常消息:类型“System.Linq.Enumerable+WhereSelectEnumerableInterator2[[System.Collections.Generic.KeyValuePair
2[[System.String,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089],[System.Web.Mvc.ModelState,System.Web.Mvc,Version=5.2.3.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35]],mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089],[myproject.ModelState摘要,myproject,Version=1.0.0.0.0,Culture=neutral,PublicKeyToken=null]]“在程序集中”System.Core,版本=4.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089“未标记为可序列化
在将列表保存到会话中时,我是否做错了什么?当您将对象放入会话中时,它在会话中被序列化。这也意味着不可序列化的对象不能存储在会话中。然后当您将其从会话中取出时,它会被反序列化。您不能反序列化到接口。它必须是一个具体的类
var stateSummaries = Session["ModelStateSummaryModel"] as List<ModelStateSummary>;
var statesummeries=Session[“ModelStateSummaryModel”]作为列表;
当您将对象放入会话时,它会在那里序列化。这也意味着不可序列化的对象不能存储在那里。然后当您将其从会话中取出时,它会被反序列化。您不能反序列化到接口。它必须是一个具体的类
var stateSummaries = Session["ModelStateSummaryModel"] as List<ModelStateSummary>;
var statesummeries=Session[“ModelStateSummaryModel”]作为列表;
您可以像下面这样施放
var stateSummaries = (List<ModelStateSummary>)Session["ModelStateSummaryModel"];
var statesumaries=(列表)会话[“modelstatesumarymodel”];
您可以像下面这样施放
var stateSummaries = (List<ModelStateSummary>)Session["ModelStateSummaryModel"];
var statesumaries=(列表)会话[“modelstatesumarymodel”];
小心将大对象放入会话。小心将大对象放入会话。