System.Xml.Serialization を使用してクラスを逆シリアル化したいのですが、リスト プロパティを使用すると奇妙な動作に気づきました。
set メソッドを呼び出さないため、重要な情報が失われます...
シリアライズ方法の切り替えは避けたい。
public class Category
{
private string _name;
private List<Category> _subCategories;
private Category _parent;
public string Name
{
get { return _name; }
set { _name = value; }
}
public List<Category> SubCategories
{
get { return _subCategories; }
set
{
_subCategories = value;
foreach (Category category in _subCategories)
{
category.Parent = this;
}
}
}
[System.Xml.Serialization.XmlIgnoreAttribute]
public Category Parent
{
get { return _parent; }
set { _parent = value; }
}
}