sid*_*rth 4 c# serialization binary-serialization
我有一个类“实体”
[Serializable]
public class Entity
{
public Guid Id { get; set; }
public IEnumerable<Entity> ChildEntity { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我会注意到它具有属性 ChildEntity,它是同一类实体的列表。
问题1。我是否必须显式序列化此列表?或者类上的 Serializable 属性将为我完成这项工作。
现在,当我尝试使用 Binary Serializer 对此类进行序列化时,出现异常,指出此类未标记为 Serializable。
我认为当它尝试序列化 childEntities 时会发生异常。
这是我的序列化代码。
public static T DeepClone<T>(T obj)
{
using (var ms = new MemoryStream())
{
var formatter = new BinaryFormatter();
try
{
formatter.Serialize(ms, obj);
}
catch (Exception Ex)
{
//TODO
}
}
}
Run Code Online (Sandbox Code Playgroud)
我还有一个类,其中实体类列表正在填充。
[Serializable]
public class AllEntity
{
public Guid ParentId {get; set; }
public Guid Id {get; set;} //childId
public string Desc {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我正在执行递归以基于父子关系构建实体类列表。
public IEnumerable<Entity> Build(IEnumerable<AllEntity> allentity)
{
//recursivey builds List if Entity class
}
Run Code Online (Sandbox Code Playgroud)
异常消息:
输入'System.LINQ.Enumerable+WhereSelectListIterator`2[[Common.Models.AllEntity, Common, Version=1.0.0.0, Culture=neutral, Token=null], [Common.Models.Entity, Common, Version=1.0.0.0 , Culture=neutral, Token=null]' 在程序集中“System.Core, Version=4.0.0.0, Culture=neutral, Token=null”未标记为可序列化
| 归档时间: |
|
| 查看次数: |
3184 次 |
| 最近记录: |