DataContract
およびDataMember
属性は、オブジェクトをファイルにシリアライズするため、およびDataContractSerializer
. 次のプライベート フィールドとパブリック プロパティを持つクラスがあるとします。
public class MyClass
{
private int positiveValue;
public int PositiveValue
{
get { return positiveValue; }
set
{
if (value < 1)
throw new ArgumentOutOfBoundException(...);
positiveValue = value;
}
}
}
ここで、以前にシリアル化されたオブジェクトの状態を含む XML ファイルがあり、ユーザーがこのファイルを変更して、プロパティに正しくない値 (つまり正でない値) を指定したとしPositiveValue
ます。ファイルの値が無効であるため、逆シリアル化中に例外がスローされます。
ファイルからオブジェクトのリストをデシリアライズしたいとしMyClass
ます。オブジェクトが有効でない場合、例外がスローされます。DataContractSerializer
が無効なオブジェクトを無視するようにすることは可能ですか? さらに、今説明した問題を考慮して、DataMember 属性が適用されたプロパティで例外をスローすることをお勧めしますか?