検証に関して、DataContract の DataMember に追加できるデータ注釈があるかどうか疑問に思っています。
長さが 50 文字を超えたくない firstname(string) データメンバーがあるとします。それをキャッチする方法はありますか、または firstname の長さが 50 を超える場合に例外をスローするカスタム faultexception を実装する必要がありますか?
WCF セキュリティのためにこの検証が必要です。これに関する提案はありますか?
検証に関して、DataContract の DataMember に追加できるデータ注釈があるかどうか疑問に思っています。
長さが 50 文字を超えたくない firstname(string) データメンバーがあるとします。それをキャッチする方法はありますか、または firstname の長さが 50 を超える場合に例外をスローするカスタム faultexception を実装する必要がありますか?
WCF セキュリティのためにこの検証が必要です。これに関する提案はありますか?
DataMembersに注釈を付けることで宣言的に検証を指定できるDataContractSerializerの機能はありません。
DataMemberを(フィールドではなく)プロパティとして定義する場合は、プロパティセッターで、逆シリアル化中にデータを検証するコードを記述できます。コードは、検証の失敗時に例外をスローしたり、データを変更したりする可能性があります(たとえば、名のメンバーの例では、データを50文字に切り捨てます)。
[DataMember]
public string FirstName
{
get { return ...; }
set { if (value.Length > 50) throw new MyValidationException(); }
}