使用我有一個模型,看起來像:與IEnumerables序列化類 - 與Enyim Memcached的
[Serializable]
public class TemplatePageModel
{
public PageModel Page { get; set; }
public SidebarModel Sidebar { get; set; }
}
[Serializable]
public class PageModel
{
public IEnumerable<SectionModel> Section { get; set; }
}
[Serializable]
public class SidebarModel
{
public IEnumerable<ControlModel> Control { get; set; }
}
[Serializable]
public class SectionModel
{
public string Order { get; set; }
public string Editable { get; set; }
public string Column { get; set; }
public string Text { get; set; }
}
我則嘗試使用EnyimMemcached在memcached中緩存此。
不會拋出異常,但該項目不存儲。
我已經跟蹤到這個事實,我的TemplatePageModel類是不可序列化的。
我這個小片段測試了這個:
MemoryStream mem = new MemoryStream();
BinaryFormatter b = new BinaryFormatter();
try
{
b.Serialize(mem, result);
}
catch (Exception ex)
{
//EXCEPTION HERE
}
它抱怨我的IEnumerable屬性。
實際錯誤信息是:
類型 「System.Linq.Enumerable + WhereSelectEnumerableIterator`2 [[System.Xml.Linq.XElement, System.Xml.Linq的,版本= 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089],[Desktop.Service.Model.ControlModel, Dekstop.Service,Version = 1.0.0.0,Culture = neutral, PublicKeyToken = null]]'in Assembly'System.Core,Version = 4.0.0.0, Culture = neutral,PublicKeyToken = b77a5c561934e089'未被標記爲 可序列化。
我該如何解決這個問題?
我希望不要有序列化JSON到第一,並進行可能的話順便....
定義「抱怨」。告訴我們確切的消息。實際上,請注意'BinaryFormatter'不關心是否IEnumerable - 它是一個字段級別的序列化器。它可能會關心的是一些不是'[Serializable]'的東西。那麼:在運行時,'.Section'和'.Control' **實際上**是什麼? –
對不起,現在編輯顯示實際的錯誤信息 – Alex