目录
一、概述
特性,说的白话一点,就是说明某个东西的特殊性,它不能单独存在,必须依附在某个东西上,这里的东西是指C#代码中类,属性,方法。特性就是对这些类,方法,属性进一步修饰。比如说,定义个 sting 类型 属性A ,我们要求该属性最小长度为5.这个要求就可以说是它的特性。
二、基本概念
特性:一个继承于Attribute的特殊类,以“[attribut()]”的方式依附在属性,方法,类等其它 Type类型上,从而对其进行约束,如下:
[Required]
public string EmpNo { get; set; }
其中[Required] 就是对EmpNo属性修饰,约束EmpNo不能为null,否则参数校验就会出错。
三、自定义特性
3.1 定义特性无参构造函数&使用
//[AttributeUsage(AttributeTargets.All)] //表示对该特性运用地方没有限制
//[AttributeUsage(AttributeTargets.Property|AttributeTargets.Field)] //表示该特性只能运用到Property和Field
//[AttributeUsage(AttributeTargets.All,AllowMultiple = true)] //AllowMultiple = true 表示该特性在同一对象上多次引用
[AttributeUsage(AttributeTargets.Property)] //表示该特性只能运用到Property
public class MaxLengthValidateAttribute: Attribute
{
}
public class User
{
[MaxLengthValidate()] //应用自定义Attribute
public string EmpNo { get; set; }
}
3.2 自定义带参构造函数特性&使用&给内部属性【ErrMsg】赋值
[AttributeUsage(AttributeTargets.Property)]
public class MaxLengthValidateAttribute: Attribute
{
private int _Max { get; set; };
public string ErrMsg { get; set; };
public MaxLengthValidateAttribute(int max)
{
_Max = max;
}
}
public class User
{
[MaxLengthValidate(max:5,