使用我有一个模型,看起来像:与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