
尽管创建自定义属性的代码非常简单,但是了解什么是属性非常重要:
属性是编译到程序中的元数据。属性本身不会为类,属性或模块添加任何功能,而只是添加数据。但是,使用反射,可以利用这些属性来创建功能。
因此,例如,让我们来看一下Microsoft
企业库中的验证应用程序块。如果查看代码示例,将会看到:
/// <summary> /// blah blah pre. /// </summary> [DataMember] [StringLengthValidator(8, RangeBoundaryType.Inclusive, 8, RangeBoundaryType.Inclusive, MessageTemplate = ""{1}" must always have "{4}" characters.")] public string Code { get; set; }从上面的代码段中,您可能会猜到,只要更改了代码,就会始终根据Validator的规则进行验证(在示例中,至少包含8个字符,最多8个字符)。但是事实是,属性什么也没做。如前所述,它仅将元数据添加到属性。
但是,企业库提供了
Validation.Validate一种可以查看您的对象的方法,对于每个属性,它都会检查内容是否违反该属性所通知的规则。
因此,这就是您应该考虑的属性-一种将数据添加到代码中的方式,以后可能会被其他方法/类/等使用。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)