【发布时间】:2015-11-03 09:47:13
【问题描述】:
我正在尝试使用 protobuf net 序列化一些数据。在序列化过程中,我收到一个错误,即没有为 Point3D 类型定义序列化。我发现了一个类似这样的问题,但仍然无法实施和解决。链接如下:-No serializer defined for type: System.Drawing.Color
[ProtoContract]
public class ReturnPanelData
{
[ProtoMember(1)]
public Point3D PlacedPoint3D { get; set; }
[ProtoMember(2)]
public double PlacementAngle { get; set; }
[ProtoMember(3)]
public string PanelName { get; set; }
}
[ProtoContract]
public class ReturnDataType
{
[ProtoMember(1)]
public List<ReturnPanelData> ReturnList { get; set; }
[ProtoMember(2)]
public double RemainderArea { get; set; }
[ProtoMember(3)]
public int Height { get; set; }
[ProtoMember(4)]
public int Width { get; set; }
[ProtoMember(5)]
public Point3D BasePoint3D { get; set; }
}
class Program
{
private static HashSet<ReturnDataType> _processedList = new HashSet<ReturnDataType>();
static void Main(string[] args)
{
using (var file = File.Create(@"D:\SavedPCInfo2.bin"))
{
Serializer.Serialize(file, _processedList);
}
Console.WriteLine("Done");
}
}
我是 JSON 序列化/反序列化的初学者。如何解决这个问题?
如果无法使用 Protobuf Net 序列化 Point3D,还有哪些其他选项可以序列化/反序列化非常大的列表(大约 300000 个项目)?
【问题讨论】:
-
为什么不 Newtonsoft.Json?
-
@Rinecamo :在选择序列化技术之前,我搜索了一些文章,发现要序列化/反序列化大列表,使用 Protobuf Net 是一个更好的选择。 stackoverflow.com/questions/26368550/…
标签: c# json serialization protobuf-net