- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有下面的类结构,并想在运行时使用 Protobuf-Net
序列化它.不幸的是,我收到错误“意外的子类型:Web2Pdf”。为什么?
var web2PdfEntity = new Web2Pdf();
web2PdfEntity.Property1 = 1;
web2PdfEntity.Property2 = 2;
web2PdfEntity.Property3 = 3;
var model = TypeModel.Create();
model.Add(typeof (EntityBase), true).AddSubType(20000, typeof (WebEntity)).AddSubType(30000,typeof (Web2Pdf));
model.CompileInPlace();
using (var stream = new FileStream(@"C:\1.txt", FileMode.Create, FileAccess.Write, FileShare.None))
{
model.Serialize(stream, web2PdfEntity); //Get exception here!
}
[ProtoContract]
public abstract class EntityBase
{
[ProtoMember(1011)]
public int Property1 { get; set; }
}
[ProtoContract]
public abstract class WebEntity : EntityBase
{
[ProtoMember(1012)]
public int Property2 { get; set; }
}
[ProtoContract]
public sealed class Web2Pdf : WebEntity
{
[ProtoMember(1013)]
public int Property3 { get; set; }
}
最佳答案
子类型必须与直接父类型相关联,因此:EntityBase
需要了解WebEntity
, 和 WebEntity
需要了解Web2Pdf
(而不是 EntityBase
知道两者和 WebEntity
不知道 Web2Pdf
)。
对于信息,较小的标签编号也更有效 - 但取决于您。
此外,这一切都可以通过 [ProtoInclude(...)]
来完成。 ,如果子类型编号固定,则可以更方便。
关于serialization - 使用 Protobuf-Net,意外子类型在运行时创建 TypeModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7713303/
当我编译类型模型字典时停止工作。 [Test] public void TestCompileSerialization() { var data = new
如果这是一个菜鸟问题,首先请原谅 - 但我是 protobuf-net 的新手。 我注意到有些人在使用 protobuf-net 序列化时使用 TypeModel.Create(),而其他人只是直接调
我有下面的类结构,并想在运行时使用 Protobuf-Net 序列化它.不幸的是,我收到错误“意外的子类型:Web2Pdf”。为什么? var web2PdfEntity = new Web2Pdf(
我有数十亿个对象,我试图将它们构建在序列化到 HDD 的 B+ 树中。我正在使用 BPlusTree数据结构库和protobuf-net用于序列化/反序列化。在这方面,我将我的类定义为: [P
正如我最近发现的,我们可以使用两个类 ProtoBuf.Serializer 和 ProtoBuf.Meta.TypeModel 在 protobuf-net 中序列化/反序列化。例如,假设我们有一个
我是一名优秀的程序员,十分优秀!