一,什么是特性
特性也是一种对象,特殊之处在于其编译时就存在了,也就是在程序运行之前就存在了。
二,如何定义一个特性
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] public sealed class RequiredAttribute:Attribute { public bool Validate(object value) { if (value == null) return true; if (string.IsNullOrEmpty(value.ToString())) return true; if (string.IsNullOrWhiteSpace(value.ToString())) return true; return false; } }
三,特性验证实体属性正确性
- 定义特性基类
/// <summary> /// 数据特性验证的基类 /// </summary> public abstract class AbstractValidateAttribute : Attribute { public abstract bool Validate(object value); }