今日、私はサードパーティのバックエンドから更新されたXMLコンテンツを入手し、新しいフィールドに準拠するためにXmlSerializerベースの解析コードを変更する必要がありました。残念ながら、私はそこに似たタグのコレクションを紹介しましたが、奇妙な行動をしていることを考え出し:C#XmlSerializerとさまざまなタグ名のコレクション[UWP]
<old-root>
...
<contacts>
<John>Feel happy</John>
<Mary>Will be away for 2 hours, phone me</Mary>
<Bob>Do not disturb. I mean it!</Bob>
...and so on...
</contacts>
</root>
これまでは、[のXmlElement]マッピングに基づいて、「古いルート」のためのパーサクラスを持っていたが、私はしませんでしたXMLアノテーション([XmlArray]/[XmlArrayItem]などのようなもの)が、同様の名前と値のペアのコレクションを管理する方法をまだ理解していません。 [XmlText]アノテーションを使って値を取得できますが、そのanyタグに注釈を付ける方法はありますか? 「星」パターンはElementNameには影響しません。
P.S.私は.NETフレームワークのUWPサブセットを使っています。
設計時にノード,、が知られていますか?あるいは、彼らは任意のノードですか? –
JuanR
@Juan、正確な名前は設計時にはわかりません。あなたがバックエンドから受け取ったコンタクトリストのようなものです。 –
属性を使用するあなたの戦略はもはや十分ではありません。あなたは基本的なシリアライゼーションを超えているので、カスタムのシリアライザ/デシリアライザを実装する必要があります。 – JuanR