我有一个 xsd 文件,我想从中生成 proto 文件。首先,我使用xsd.exe从 xsd 文件生成 C# 类,现在我想生成 proto 文件。我知道我必须使用,string proto = Serializer.GetProto<MyType>(); 但它似乎不起作用,因为自动生成的 C# 类没有用属性装饰。有没有其他方法可以在不将这些属性添加到生成的代码中的情况下生成 proto 文件?
1 回答
茅侃侃
TA贡献1842条经验 获得超21个赞
protobuf网可以使用的类型饰[DataContract]/ [DataMember],只要该[DataMember]小号包括合适的Order = n可选参数。从内存中,xsd 确实包含这个,但它Order从零开始,而 protobuf-net 想要从 1 开始(因为零在 protobuf 中不是有效标签)。最简单的解决方法是创建第二个单独的文件以在以下文件中添加补丁partial class:
namespace TheSameNamespace {
[ProtoContract(DataMemberOffset = 1)]
partial class TheSameClass {}
}
这告诉 protobuf-net 向所有[DataMember(Order = n)]标记添加一个。在那之后:它应该工作。
- 1 回答
- 0 关注
- 173 浏览
添加回答
举报
0/150
提交
取消