У меня есть список для хранения в сеансе в режиме SqlServer.Как пометить список или IEnumerable сериализуемый?
[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>;
Я получил сообщение об ошибке, говоря,
типа Exception : System.Runtime.Serialization.SerializationException Exception m essage: Type 'System.Linq.Enumerable + WhereSelectEnumerableIterator
2[[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.ModelStateSummary, myproject, Version = 1.0.0.0, Culture = neutral , PublicKeyToken = null]] 'в Assembly' System.Core, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 'не помечено как сериализуемое.
Я сделал что-то неправильно в сохранении списка в Сессию?
Будьте осторожны, размещая большие объекты в сеансе. –