6

我正在使用 WCF RIA 服务,并且遇到了一个使用属性的示例:

[StringLength(10, ErrorMessage="Too long")]
public string FirstName { get; set; }
...

虽然属性不限于 WCF RIA,但它让我想起了一个问题:为什么声明式或基于属性的编程更适合于“老式方式”编写验证例程?

谢谢,

斯科特

4

4 回答 4

7

因为无需执行代码即可发现约束。通过反射,您可以访问这些约束。

于 2010-09-02T05:16:36.740 回答
1

最大的好处是可重用性。能够设置一次(名称、必需、正则表达式等)然后在您的 WCF 应用程序以及 MVC 应用程序中使用它,并且一切都保持一致,这真是太好了。

于 2010-09-02T05:17:09.900 回答
0

并不是基于属性的编程优于“老式方式”验证。一般来说:

  1. 它看起来更干净(至少对我来说)
  2. 在方法/属性上添加属性比找到放置代码验证的位置要容易一些

否则,两种方法之间没有太大区别。

于 2010-09-02T05:20:37.550 回答
0

使用属性时要考虑的一件事是因为它们是可发现的,您可以使用它们来添加业务级客户端验证。

于 2010-09-02T06:38:28.773 回答