次のような XML シリアライゼーションを使用することを想像します。
class Foo {
public Foo (string name) {
Name1 = name;
Name2 = name;
}
[XmlInclude]
public string Name1 { get; private set; }
[XmlInclude]
private string Name2;
}
StreamWriter wr = new StreamWriter("path.xml");
new XmlSerializer<Foo>().Serialize (wr, new Foo ("me"));
編集:このコードが間違っていることはわかっています。自分がどのように使いたいかを表示するだけでした。
しかし、これはまったく機能しません:
- XmlSerializer はジェネリックではありません。(デ) シリアライゼーションのオブジェクトからキャストする必要があります。
- すべてのプロパティは完全に公開する必要があります。プライベート セッターへのアクセスに Reflection を使用しないのはなぜですか?
- プライベート フィールドはシリアル化できません。プライベート フィールドを属性で装飾して、XmlSerializer に含めるようにしたいと思います。
XmlSerializer は実際に記述された可能性を提供していますか? これらのケースをより洗練された方法で処理する XML への代替シリアライザーはありますか?
そうでない場合: 結局のところ、現在は 2010 年であり、.NET は何年も前から存在しています。XML シリアライゼーションがよく使用されますが、これは完全に標準であり、非常に簡単に実行できるはずです。それとも、私の理解が間違っている可能性があり、XMLシリアライゼーションは正当な理由で説明されている機能を公開すべきではありませんか?
編集:レガシーは正当な理由ではありません。List
も最初は一般的ではありませんでした。
(キャプションやタグは自由に調整してください。これが CW である必要がある場合は、メモを残してください。)