數據註釋是可以運用於類或類成員的特色,以指定類之間的聯繫、描述數據怎麼在UI中顯現以及指定驗證規矩。本文評論數據註釋、爲何數據註釋頗有用以及怎麼在.NETCore應用程序中運用它們。
若要運用本文供給的代碼示例,您應該在體系中裝置VisualStudio2019。若是尚未裝置,可以在此處下載VisualStudio2019。
在VisualStudio2019中創立控制檯應用程序項目
首先,無妨在VisualStudio中創立一個.NETCore控制檯應用程序項目。假定體系中已裝置VisualStudio2019,按照下面概述的步驟在VisualStudio中創立新的.NETCore控制檯應用程序項目。
啓動VisualStudioIDE。
點擊「創立新項目」。
在「創立新項目」窗口中,從顯現的模板列表中挑選「控制檯應用程序」。
點擊下一步。
在接下來顯現的「裝備新項目」窗口中,指定新項目的名稱和位置。
點擊創立。
這將在VisualStudio2019中創立一個新的.NETCore控制檯應用程序項目。咱們在本文後邊將運用該項目來處理數據註釋。
增長System.ComponentModel.DataAnnotations命名空間
想運用本文給出的代碼示例,應該將System.ComponentModel.DataAnnotations命名空間增長到您的程序。
留意,特色用於指定類或特色的元數據。數據註釋特色大體分爲如下幾類:
驗證特色——用於對實體的特色施行驗證規矩。
顯現特色——用於指定數據在用戶界面中應怎麼顯現。
建模特色——用於指定類之間存在的聯繫。
C中的數據註釋示例
在前面創立的控制檯應用程序中的Author.cs文件中創立如下類。
publicclassAuthor
{
publicstringFirstName{get;set;}
publicstringLastName{get;set;}
publicstringPhoneNumber{get;set;}
publicstringEmail{get;set;}
}
下列代碼片斷代表晰您怎麼創立Author類的實例併爲其特色賦予值。
Authorauthor=newAuthor();
author.FirstName="Joydip";
author.LastName="";
author.PhoneNumber="1234567890";
author.Email="joydipkanjilal@yahoo.com";
您可以在Program.cs文件的Main辦法中編寫下列代碼片斷,以驗證模型。
ValidationContextcontext=newValidationContext;
ListvalidationResults=newList();
boolvalid=Validator.TryValidateObject;
if
{
foreach
{
Console.WriteLine;
}
}
ValidationContext這個類爲您供給了進行驗證所在的上下文。若是驗證成功,Validator類的TryValidateObject靜態辦法回來true,不然回來false。它還回來ValidationResults列表,詳細列出該模型未通過的一切驗證。最後,咱們運用foreach循環來迭代處理ValidationResults列表,在控制檯窗口顯現過錯音訊。
完整的代碼片斷以下所示,供您參閱。
publicclassAuthor
{
publicstringFirstName{get;set;}
publicstringLastName{get;set;}
publicstringPhoneNumber{get;set;}
publicstringEmail{get;set;}
}
classProgram
{
staticvoidMain
{
Authorauthor=newAuthor();
author.FirstName="Joydip";
author.LastName="";//Novalueentered
author.PhoneNumber="1234567890";
author.Email="joydipkanjilal@yahoo.com";
ValidationContextcontext=newValidationContext
;
ListvalidationResults=new
List();
boolvalid=Validator.TryValidateObject
;
if
{
foreach
{
Console.WriteLine;
}
}
Console.ReadKey();
}
}
執行程序後,應該會看到控制檯窗口顯現的下列過錯音訊:
LastNameisrequired
在C#中創立自界說驗證特色
想創立自界說驗證特色類,您應該擴展ValidationAttribute基礎類,並覆蓋IsValid辦法,以下列代碼片斷所示。
publicclassIsEmptyAttribute:ValidationAttribute
{
publicoverrideboolIsValid
{
varinputValue=valueasstring;
return!string.IsNullOrEmpty;
}
}
下列代碼片斷代表晰你怎麼可以運用自界說特色來裝修Author類的FirstName和LastName特色。
publicstringFirstName{get;set;}
publicstringLastName{get;set;}
數據註釋最初做爲System.ComponentModel.DataAnnotations命名空間的一部分而引入到.NET3.5中。此後,它已成爲.NET中一種普遍運用的功用。你可以充分利用數據註釋在單單一處界說數據驗證規矩,於是不必一再重寫一樣的驗證代碼。ide