我在使用 Protobuf.net 的项目中遇到此异常:

InvalidOperationException "Unexpected sub-type: foo"

我有一个我正在发送的类(class),它看起来像这样:
class message
{
    list<bar> listOfBars;
}

foo 继承了 bar,但是 protobuf 似乎对此感到窒息并生成了上面的异常。有没有办法解决这个问题?我需要能够在列表中保存所有不同的 bar 子类型,因此类型受限的解决方案将是困难/不可能的。

最佳答案

我可能错了,但我认为您需要在继承的类上指定哪些子类型从它继承,例如:

[Serializable, ProtoContract, ProtoInclude(100, typeof(Foo))]
class Bar { }

[Serializable, ProtoContract]
class Foo : Bar { } // Inherits from Bar

关于c# - protobuf.net 意外的子类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3797651/

10-17 02:12