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 属性が適用されたプロパティで例外をスローすることをお勧めしますか?