私は、要素で満たされたXMLファイルをプロパティのクラスに逆シリアル化する簡単な方法があるかどうかを調べています。具体的には、アタッチするプロパティとして要素属性「name」を使用します。たとえば、次のようなXMLファイル形式があります。
<?xml version="1.0" encoding="utf-8"?>
<settings>
<setting name="number_val_one">1</setting>
<setting name="string_val_one">test</setting>
<setting name="number_val_two">42</setting>
<setting name="string_val_two">hello world</setting>
</settings>
これを逆シリアル化して、この形式に似たクラスに戻す簡単な方法があるかどうか疑問に思っています。
public class SomeObject
{
[XmlElement("number_value_one")]
public Int32 NumberValueOne { get; set; }
[XmlElement("number_value_two")]
public Int32 NumberValueTwo { get; set; }
[XmlElement("string_value_one")]
public String StringValueOne { get; set; }
[XmlElement("string_value_two")]
public String StringValueTwo { get; set; }
}
この形式はシリアル化などに最適ではないことは理解していますが、このプロジェクトのファイルの形式を変更することはできません。現在、私は各要素を手作業で読んでおり、その値は多くのコードであり、かなり厄介です。シリアル化してxmlに戻すために、リフレクションを使用して、各要素を手動で記述する必要性を回避しています。しかし、このフォーマットを処理する簡単な方法があるかどうか疑問に思っています。
ただし、すべての要素がstring / intであるとは限りません。一部の要素は、読み取られた後に解析されるカスタムタイプです。