如何使用Protobuf-Net序列化.Net异常?

时间:2012-04-19 20:02:08

标签: serialization protocol-buffers protobuf-net

任何人都可以给我一个例子或指向我如何使用Protobuf-Net序列化/反序列化一些内置系统类的资源吗?

具体来说,我只是尝试序列化/反序列化基本的Exception类以及从中继承的所有其他异常类。我是否必须创建一个新的RunTypeModel来指定我将需要序列化的每个可能的异常类,或者我可以告诉Protobuf-Net以相同的方式序列化它们而不列出每一个?

任何帮助都非常感谢,因为我是Protobuf-Net的新手,我仍然试图理解这一切。

2 个答案:

答案 0 :(得分:3)

protobuf-net旨在序列化DTO模型,但不是例外 - 非常类似于XmlSerializer等(但显然是二进制而不是xml)。目前还没有内置序列化异常。可能会破解一些东西,但这不是真正的设计功能。

答案 1 :(得分:0)

你真的不能序列化像

这样的类
public class MyTest
{
    [ProtoMember(1)]
    public Exception MyException { get; set; }
}

但是可以进行一些小的更改来序列化

public class MyTest
{
    [ProtoMember(1, DynamicType = true)]
    public Object MyException { get; set; }
}

这是我发现序列化异常的唯一方法。