我正在开发一个通过网络对消息进行序列化和反序列化的应用程序。但是我遇到了使用 xsd 从 xsd 模式生成的 C# 类的问题。
我能够用我自己的测试类成功地测试 protobuf 库。安装 lib 并使用必要的 protobuf 属性(包括整数顺序)装饰我的类。
我从文档中了解到 protobuf 尊重现有的序列化属性,如 xmltype、datacontract 等。当我运行 xsdgen 工具时,我的类被这些属性修饰,但序列化过程没有发生。
我尝试创建一个部分类,但如果我有很多类并且这些类不断变化,它仍然是相当手动的。
这是我的 xsd 命令 [xsd TopClass.xsd /c /eld /edb /n:MyNamespace /order]
有人可以推荐一个解决方案吗?
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlRootAttribute("safHeartBeat", Namespace="", IsNullable=false)]
public partial class SaFHeartBeat {
private System.DateTime timestampField;
private string cacheNameField;
private string hostnameField;
private System.DateTime processStartTimeField;
private SafStatusEnum statusField;
private object datatypeField;
private int itemCountField;
private System.DateTime lastUpdateTimeField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public System.DateTime timestamp {
get {
return this.timestampField;
}
set {
this.timestampField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=1)]
public string cacheName {
get {
return this.cacheNameField;
}
set {
this.cacheNameField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=2)]
public string hostname {
get {
return this.hostnameField;
}
set {
this.hostnameField = value;
}
}