基于属性的编程有哪些优点?

时间:2010-09-02 05:13:55

标签: c# attributes declarative

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

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

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

谢谢,

斯科特

4 个答案:

答案 0 :(得分:6)

因为可以在不必执行代码的情况下发现约束。通过反射,您可以访问这些约束。

答案 1 :(得分:1)

最大的好处是可重用性。很高兴能够设置一次(Name,Required,Regex等),然后在你的WCF应用程序和MVC应用程序中使用它,并且一切都保持一致。

答案 2 :(得分:0)

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

  1. 它看起来更干净(至少对我而言)
  2. 在方法/属性上点击属性比找到放置代码验证的位置要容易一些
  3. 否则两种方法之间没有太大区别。

答案 3 :(得分:0)

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