[Serializable]
public class ProfilesCollection : ObservableCollection<Profile>
{
public ProfilesCollection()
{
}
}
[Serializable]
public class Profile : ObservableCollection<SomeData>
{
private string _name;
public string Name
{
get { return _name; }
set
{
_name = value;
OnPropertyChanged(new PropertyChangedEventArgs("Name"));
}
}
public Profile()
{
}
}
[Serializable]
public class SomeData : INotifyPropertyChanged
{
// some properties
public SomeData()
{ ... }
[field: NonSerialized]
public event PropertyChangedEventHandler PropertyChanged;
protected void NotifyPropertyChanged(string property)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
}
XmlSerializer を使用して ProfilesCollection (または Profile) オブジェクトをシリアル化しようとしています。
using (var writer = new StreamWriter("1.xml"))
{
var xs = new XmlSerializer(typeof(ProfilesCollection));
xs.Serialize(writer, _profiles);
}
ただし、.xml には Profile クラスにある Name プロパティが含まれていません。それ以外は大丈夫です。それを修正するにはどうすればよいですか?