我想知道在验证方面,是否有任何数据注释可以添加到DataContract中的DataMember中。
假设我们有一个名字(字符串)数据成员,我们不希望它的长度超过50个字符。有没有办法捕获它,或者如果名字的长度超过50,我们需要实现一个自定义的faultexception来抛出一个异常。
我们需要这个WCF安全性的验证。对此有何建议?
发布于 2012-10-01 21:25:05
DataContractSerializer没有允许您通过注释DataMembers以声明方式指定验证的功能。
如果将DataMember定义为属性(而不是字段),则可以在反序列化期间在属性设置器中编写代码来验证数据。代码可以在验证失败或更改数据时抛出异常(例如,在名字成员的示例中将其截断为50个字符)。
[DataMember]
public string FirstName
{
get { return ...; }
set { if (value.Length > 50) throw new MyValidationException(); }
}https://stackoverflow.com/questions/12673432
复制相似问题