我正在使用WCF RIA服务,并使用属性找到了一个示例:
[StringLength(10, ErrorMessage="Too long")]
public string FirstName { get; set; }
...
虽然属性不仅限于WCF RIA,但它让我想起了一个问题:为什么基于声明或基于属性的编程可以用“老式的方式”编写验证例程?
谢谢,
斯科特
答案 0 :(得分:6)
因为可以在不必执行代码的情况下发现约束。通过反射,您可以访问这些约束。
答案 1 :(得分:1)
最大的好处是可重用性。很高兴能够设置一次(Name,Required,Regex等),然后在你的WCF应用程序和MVC应用程序中使用它,并且一切都保持一致。
答案 2 :(得分:0)
基于属性的编程并不比“老式方式”验证更优越。一般来说:
否则两种方法之间没有太大区别。
答案 3 :(得分:0)
使用属性时要考虑的一件事是因为它们是可发现的,您可以使用它们来添加业务级客户端验证。