現在、XMLファイルを読み取るためにLINQクエリを使用しています。C#XmlSerializer:値を保持し、要素ラベルをオーバーライドします。
<MyObjects>
<MyObject>
<MyElement>some_text</MyElement>
<MyOtherElement>some_more_text</MyOtherElement>
</MyObject>
</MyObjects>
カスタムHistoryString
プロパティを含むカスタムオブジェクトのリストに変換します。 HistoryString
には、2つの文字列、currentValue
およびpreviousValue
が含まれています。何がneatestおよび/またはほとんどのようになります。
このカスタムを書くためにXmlSerializerを使用してXMLファイルに戻ってオブジェクトをする場合、出力はかなり明らかに追加のタグが含まれている以外のすべてが素晴らしい作品は
<MyObjects>
<MyObject>
<MyElement>
<currentValue>some_text</currentValue>
<previousValue>some_text</previousValue>
</MyElement>
<MyOtherElement>
<currentValue>some_more_text</currentValue>
<previousValue>some_more_text</previousValue>
</MyOtherElement>
</MyObject>
</MyObjects>
Q、すなわちこの基本的な違いに基づいて、XMLを同じ形式で読み書きする効率的な方法ですか?
いくつかの初期のアイデア:
1)マーク[System.Xml.Serialization.XmlIgnore]
とpreviousValue
プロパティは、<currentValue>
と</currentValue>
2の痕跡をすべて削除書き込まれるXML文字列をスイープ)既存のファイルを開き、手動で更新/削除/追加を行う - これは確かにより長い間巻き込まれています。
3)HistoryString
は、ToString()の動作と同様に、それぞれのプロパティをシリアル化するのではなく、自動的にcurrentValue
に解決されますか?
便利なMSDNの記事hereとhereなど、これに関するいくつかの調査を行っていますが、この問題を解決する他の属性はありません。これが可能かどうかはまだ分かりません。何か案は?
は治療のように動作します、ありがとう:) –