文章持续补充中
特性并不是集中在某一命名空间中,而是不同的特性在不同的命名空间下,特性是某一命名空间下提供的语法糖。
有哪些命名空间提供特性:
| 命名空间 | 描述 |
| Microsoft.Build.Framework | 包含定义任务和记录器与 MSBuild 引擎的交互方式的类型 |
| Microsoft.JScript | 包含支持使用 JScript 语言编译和生成代码的类 |
| Microsoft.SqlServer.Server | |
| Microsoft.VisualBasic | |
| Microsoft.Vsa | |
| System.Activities | |
| System.ComponentModel | |
| System.ComponentModel.DataAnnotations | |
Microsoft.Build.Framework
包含定义任务和记录器与 MSBuild 引擎的交互方式的类型.
| 特性 |
描述 |
| LoadInSeparateAppDomainAttribute |
定义一个元数据特性,MSBuild 使用此特性来标识必须在其自己的应用程序域中执行的任务。 |
| OutputAttribute | 定义任务作者用来标识从任务输出数据的任务属性的元数据特性 |
| RequiredAttribute | 定义任务作者用来标识所需的任务属性的元数据特性。 当运行任务时,具有此特性的任务属性必须具有已设置好的值。 |
| RequiredRuntimeAttribute | 定义任务作者用于标识任务是否求特定版本的 CLR 运行时的元数据特性。 |
| RunInMTAAttribute | 此特性用于将一个任务类标记为不显式要求在 COM 的 STA 中运行 |
| RunInSTAAttribute | 此特性用于将一个任务类标记为必须在 COM 的单线程单元中运行。 |
System.ComponentModel.DataAnnotations
官方的描述是 命名空间提供定义 ASP.NET MVC 和 ASP.NET 数据控件的类的特性。
这个是我们在网站开发时经常遇到的。在实际使用中,我们可以在控制台、Winform 等项目的 Model 中加此特性,控制属性输入。然而并不是说在控制台也是也能生效,只是能够用到。后面会解释到。
此命名空间的特性包含 [Required]、[Response]、[Phone] 等 ASP.NET Core 数据验证常用的特性。
| AssociatedMetadataTypeTypeDescriptionProvider |
通过添加在关联类中定义的特性和属性信息,从而扩展某个类的元数据信息。 |
| AssociationAttribute |
指定实体成员表示数据关系(如外键关系)。 |
| BindableTypeAttribute |
指定类型是否通常用于绑定。 |
| CompareAttribute |
提供用于比较两个属性的特性。 |
| ConcurrencyCheckAttribute |
指定属性参与乐观并发检查。 |
| CreditCardAttribute |
指定数据字段值是信用卡号。 |
| CustomValidationAttribute |
指定用于验证属性或类实例的自定义验证方法。 |
| DataTypeAttribute |
指定要与数据字段关联的其他类型的名称。 |
| DisplayAttribute |
提供允许为实体分部类的类型和成员指定可本地化字符串的通用特性。 |
| DisplayColumnAttribute |
指定作为外键列显示在被引用表中的列。 |
| DisplayFormatAttribute |
指定 ASP.NET 动态数据如何显示数据字段以及如何设置数据字段的格式。 |
| EditableAttribute |
指示数据字段是否可编辑。 |
| EmailAddressAttribute |
验证电子邮件地址。 |
| EnumDataTypeAttribute |
启用 .NET Framework 枚举,以映射到数据列。 |
| FileExtensionsAttribute |
验证文件扩展名。 |
| FilterUIHintAttribute |
表示用于指定列的筛选行为的特性。 |
| KeyAttribute |
表示唯一标识实体的一个或多个属性。 |
| MaxLengthAttribute |
指定属性中允许的数组或字符串数据的最大长度。 |
| MetadataTypeAttribute |
指定要与数据模型类关联的元数据类。 |
| MinLengthAttribute |
指定属性中允许的数组或字符串数据的最小长度。 |
| PhoneAttribute |
指定数据字段值是格式标准的电话号码。 |
| RangeAttribute |
为数据字段的值指定数值范围约束。 |
| RegularExpressionAttribute |
指定 ASP.NET 动态数据中的数据字段值必须与指定的正则表达式匹配。 |
| RequiredAttribute |
指定数据字段值是必需的。 |
| ScaffoldColumnAttribute |
指定类或数据列是否使用基架。 |
| ScaffoldTableAttribute |
指定类或数据表是否使用基架。 |
| StringLengthAttribute |
指定数据字段中允许的字符的最小长度和最大长度。 |
| TimestampAttribute |
列的数据类型指定为行版本。 |
| UIHintAttribute |
指定动态数据用来显示数据字段的模板或用户控件。 |
| UrlAttribute |
提供 URL 验证。 |
| ValidationAttribute |
充当所有验证特性的基类。 |
| ValidationContext |
描述执行验证检查的上下文。 |
| ValidationException |
ValidationAttribute 类的情况下验证数据字段时发生的异常。 |
| ValidationResult |
表示验证请求的结果的容器。 |
| Validator |
ValidationAttribute 特性中包含此类时,可使用此类来验证这些项。 |
System.ComponentModel
C#所有特性派生类及其详细解释、使用方法地址
下面列举了C#的所有特性类