常用數據校驗特性可以查看 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);函數的定義信息
最后自己實現一個特性