protobuf.net意外的子类型
我在使用Protobuf.net的项目中遇到此exception:
InvalidOperationException "Unexpected sub-type: foo"
我有一个我要发送的类,如下所示:
class message { list listOfBars; }
fooinheritance了bar,但是protobuf似乎对此产生了阻碍并产生了上面的exception。 这有什么办法吗? 我需要能够在列表中保存所有不同的bar子类型,因此更难以/不可能采用更多类型约束的解决方案。
我可能弄错了,但我认为你需要在inheritance的类上指定哪些子类inheritance它,例如:
[Serializable, ProtoContract, ProtoInclude(100, typeof(Foo))] class Bar { } [Serializable, ProtoContract] class Foo : Bar { } // Inherits from Bar
我不是百分之百地使用协议缓冲区,也许我已经离开这里了,但是你认为List可以从List中分配,其中Barinheritance自Foo? 情况并非如此 – 它们被认为是两种不同的类型,没有关系。 在.NET 4中,支持协变类型参数,但它需要来自集合的支持(即使在.NET 4中也不提供List,因为这将是一个重大改变 – 可以说是旧代码,无论如何都试图破坏它,但它仍然是行为改变)
上述就是C#学习教程:protobuf.net意外的子类型分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/952086.html