1、Attribute都从System. Attribute类继承,类名一般以Attribute结尾。
2、创建构造函数。
3、标记类的用途—AttributeUsage标记(标记的标记):AttributeTargets:可以添加到哪些成员上。AllowMultiple:是否允许在一个成员上标记这个Attribute的多个实例,默认false。标注在Attribute类的类名上方。
4、Attribute只是给类、成员做标记,本身没有什么意义,不会发生任何动作,就像小偷踩点在门上做标记(StealableAttribute)一样,具体这个标记会起到什么作用是由使用这个类、成员的代码决定的。
5、代码示例:
[AttributeUsage(AttributeTargets.Property)]
public class ValidatorAttribute : Attribute
{
public ValidatorType ValidatorType { get; set; }
public ValidatorAttribute(ValidatorType validatorType)
{
this.ValidatorType = validatorType;
}
}
public enum ValidatorType
{
Email,PostCode
}
class Person
{
public string Name { get; set; }
[Validator(ValidatorType.Email)]
public string Email { get; set; }
[Validator(ValidatorType.PostCode)]
public string PostCode { get; set; }
}