私はReadOnlyCollectionを通じてコレクションを公開するコンテナクラスをいくつか持っています。カスタムメソッドは、カスタムロジックを実行するコレクションからの追加と削除に提供されます。例えばReadOnlyCollectionsのXmlシリアル化
:
public class Foo
{
List<Bar> _barList = new List<Bar>();
public ReadOnlyCollection<Bar> BarList
{
get { return _barList.AsReadOnly(); }
}
public void AddBar(Bar bar)
{
if (bar.Value > 10)
_barList.Add(bar);
else
MessageBox.Show("Cannot add to Foo. The value of Bar is too high");
}
public void RemoveBar(Bar bar)
{
_barList.Remove(bar);
// Foo.DoSomeOtherStuff();
}
}
public class Bar
{
public string Name { get; set; }
public int Value { get; set; }
}
これはすべてが順調と良いですが、私は、XMLシリアライザではFooをシリアル化するために来たときに例外がスローされます。
誰でもこれについて良い方法を提供できますか?
おかげ
例外は何ですか? –
Fooを反映する際にエラーが発生したため、InvalidOperationExceptionがスローされます。 –