我有一个.NET类型,它既没有ProtoContract也没有DataContract。此外,并非所有状态都需要进行原始序列化。 我可以为它定义一个.proto文件,但是同时使用某种序列化程序来序列化它,就好像它是归因于ProtoContract一样吗?
感谢。
答案 0 :(得分:6)
作为第三种选择,可以使用[XmlType]
和[XmlElement(Order=n)]
......但我不认为这就是你的意思; p
在“v2”中,这确实是可能的。您不需要定义.proto - 您可以简单地告诉它在运行时要做什么,例如:
var model = TypeModel.Create();
model.Add(typeof(SomeType)).Add("Foo", "Bar", "Blip");
现在将model
存储在某处(并重复使用),然后使用model.Serialize(...)
和model.Deserialize(...)
。以上配置SomeType
序列化.Foo
(作为字段1),.Bar
(作为字段2)和.Blip
(作为字段3)。当然,有更多的方法可以实现更细粒度的控制。
它将生成(首先需要)一个序列化器(通过IL发射,非常快),可以按预期使用您的类型。
有一个可下载的“v2”dll,但它需要更新 - 我在过去几周内做了很多修复。我今天晚些时候会尝试刷新这个dll,或者你可以用代码构建。