C# 常用的一些内置特性(Attribute)


常用数据校验特性可以查看 System.ComponentModel.DataAnnotations 命名空间

AssociatedMetadataTypeTypeDescriptionProvider

通过添加在关联类中定义的特性和属性信息,从而扩展某个类的元数据信息。

AssociationAttribute

指定实体成员表示数据关系(如外键关系)。

CompareAttribute

提供用于比较两个属性的特性。

ConcurrencyCheckAttribute

指定属性参与乐观并发检查。

CreditCardAttribute

指定数据字段值是信用卡号。

CustomValidationAttribute

指定用于验证属性或类实例的自定义验证方法。

DataTypeAttribute

指定要与数据字段关联的其他类型的名称。

DisplayAttribute

提供允许为实体分部类的类型和成员指定可本地化字符串的通用特性。

DisplayColumnAttribute

指定作为外键列显示在被引用表中的列。

DisplayFormatAttribute

指定 ASP.NET 动态数据如何显示数据字段以及如何设置数据字段的格式。

EditableAttribute

指示数据字段是否可编辑。

EmailAddressAttribute

验证电子邮件地址。

EnumDataTypeAttribute

启用 .NET 枚举,以映射到数据列。

FileExtensionsAttribute

验证文件扩展名。

FilterUIHintAttribute

表示用于指定列的筛选行为的特性。

KeyAttribute

表示唯一标识实体的一个或多个属性。

MaxLengthAttribute

指定属性中允许的数组或字符串数据的最大长度。

MetadataTypeAttribute

指定要与数据模型类关联的元数据类。

MinLengthAttribute

指定属性中允许的数组或字符串数据的最小长度。

PhoneAttribute

指定数据字段值是格式标准的电话号码。

RangeAttribute

为数据字段的值指定数值范围约束。

RegularExpressionAttribute

指定 ASP.NET 动态数据中的数据字段值必须与指定的正则表达式匹配。

RequiredAttribute

指定数据字段值是必需的。

ScaffoldColumnAttribute

指定类或数据列是否使用基架。

StringLengthAttribute

指定数据字段中允许的字符的最小长度和最大长度。

TimestampAttribute

列的数据类型指定为行版本。

UIHintAttribute

指定动态数据用来显示数据字段的模板或用户控件。

UrlAttribute

提供 URL 验证。

ValidationAttribute

充当所有验证特性的基类。

ValidationContext

描述执行验证检查的上下文。

ValidationException

表示在使用 ValidationAttribute 类的情况下验证数据字段时发生的异常。

ValidationResult

表示验证请求的结果的容器。

Validator

定义一个帮助器类,在与对象、属性和方法关联的 ValidationAttribute 特性中包含此类时,可使用此类来验证这些项。


补充一些

Required 这个特性是告诉别人这个字段是必须的
Description 添加一个描述信息 Flags 常用于枚举

Obsolete   被该特性标注的方法,在使用过程中会被提示已经弃用,给调用者一个提示。在大型项目中普遍用于新方法代替旧方法 

Conditional("DEBUG"),表示这个方法在debug下是执行的,在release下是不执行的

CallerFilePath,CallerLineNumber,CallerMemberName 调用者信息特性,返回调用该方法的文件、所在行数、以及方法名称,我们在vs中,直接选中方法,点击Shift + F12 vs会列出所有调用过该方法的位置

DebuggerStepThrough  在代码 打断点 调试 过程中,不进入该方法,一般加在不可能有错误的方法中,方便调试

Serializable 标记某类可序列化,序列化与反序列化一般在本地储存、网络传输的时候才会使用,当我们想把处于内存中的对象保存在本地或者网络传输的时候,需要先将其序列化,在目的地或者重新使用的时候,再将其反序列化

Nonserialized 不允许序列化,在被标注为Serializable序列化的类中,某字段前加Nonserialized,表示该字段不允许序列化
[DllImport("coredll.dll", EntryPoint = "ShowWindow")] 从非托管 DLL 导出的函数进行调用所必需的信息 要调用的dll  coredll.dll   EntryPoint 代表入口点  
public static extern int ShowWindow(int hwnd, int nCmdShow);函数的定义信息



 最后自己实现一个特性

 

posted @ 2021-05-07 08:21  只吃肉不喝酒  阅读(3130)  评论(0编辑  收藏  举报