私は、ネットワークを介してメッセージをシリアル化および逆シリアル化するアプリに取り組んでいます。しかし、xsdを使用してxsdスキーマから生成されたC#クラスに問題があります。
私は自分のテストクラスでprotobufライブラリを正常にテストすることができました。libをインストールし、整数の順序を含む必要なprotobuf属性でクラスを装飾します。
ドキュメントから、protobufはxmltype、datacontractなどの既存のシリアル化属性を尊重することがわかります。xsdgenツールを実行すると、クラスはこれらの属性で装飾されますが、シリアル化プロセスは実行されません。
部分的なクラスを作成しようとしましたが、クラスが多く、クラスが絶えず変化している場合は、それでもかなり手動でした。
これは私のxsdコマンドです[xsdTopClass.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;
        }
    }