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

Serialization 如何使用Protobuf Net序列化.Net异常?,serialization,protocol-buffers,protobuf-net,Serialization,Protocol Buffers,Protobuf Net,有没有人能给我举个例子,或者给我介绍一下如何使用Protobuf Net对系统类中的一些bulit进行序列化/反序列化的资源 具体地说,我只是尝试序列化/反序列化基类异常类和从它继承的所有其他异常类。我是否必须创建一个新的RunTypeModel来指定我需要序列化的每个可能的异常类,或者我是否可以告诉Protobuf Net以相同的方式序列化它们,而不列出每个异常类 非常感谢您的帮助,因为我是Protobuf Net的新手,我仍在努力理解它。Protobuf Net旨在序列化DTO模型,但不是异

有没有人能给我举个例子,或者给我介绍一下如何使用Protobuf Net对系统类中的一些bulit进行序列化/反序列化的资源

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


非常感谢您的帮助,因为我是Protobuf Net的新手,我仍在努力理解它。

Protobuf Net旨在序列化DTO模型,但不是异常-非常类似于XmlSerializer等(但显然是二进制的,而不是xml)。序列化异常当前未内置。也许可以破解一些东西,但这并不是一个真正设计好的特性。

你真的无法序列化像这样的类

public class MyTest
{
    [ProtoMember(1)]
    public Exception MyException { get; set; }
}
但是做一个小的改动就可以序列化

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

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

尝试过之后,这似乎对我不起作用。这是有效的:我最终通过创建一个ExceptionProxy类解决了这个问题,该类使用了一点丑陋的反射来从异常中提取数据并序列化它。然后,我使用反序列化的ExceptionProxy类信息和更多反射在另一侧重新生成异常图。虽然不漂亮,但效果很好。