[英]generate proto file from xsd
我有一个xsd文件,我想从中生成原始文件。
首先,我使用xsd.exe从xsd文件生成C#类,现在我想生成原始文件。
我知道我必须使用string proto = Serializer.GetProto<MyType>();
但似乎不起作用,因为自动生成的C#类未使用属性修饰。
有没有其他方法可以在不向生成的代码添加这些属性的情况下生成原型文件?
protobuf-net可以使用以[DataContract]
/ [DataMember]
装饰的类型, 只要 [DataMember]
包含合适的Order = n
可选参数即可。 从内存来看,xsd确实包含此内容, 但是它从零开始Order
,因为protobuf-net希望从零开始(因为零在protobuf中不是有效标签)。 最简单的解决方法是创建另一个单独的文件,以在partial class
添加补丁:
namespace TheSameNamespace {
[ProtoContract(DataMemberOffset = 1)]
partial class TheSameClass {}
}
这告诉protobuf-net向所有[DataMember(Order = n)]
标记添加一个。 之后:它应该起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.