上一篇中,我們生成了實體代碼,加入了Business和Common,項目突然變得大了起來,現在我們就來 一點點分析。
我們還是從這張系統結構圖出發。先來看Common這個DLL,其中所包含的類,如下圖所示。
1,驗證相關類(IValidatable,Validater,ValidateResult,ValidateFailException)
這四個類主要是在業務層,驗證實體數據時使用,每一個實體(Entity)在保存數據時對其自身數據 進行驗證,以保證絕不讓非法數據保存到數據庫中,這四個類就是為這一功能服務的。其中驗證器 (Validater)是這四個類的核心,負責驗證的實現。以下這段測試代碼(位於 DongBlog.Test\Common\Validate\ValidateTest.cs)展示了這該個類的典型用法,即通過AddCondition 添加要驗證的條件(通常是表達式)和驗證失敗時顯示的錯誤信息,通過Validate方法取得驗證結果 (ValidateResult類的實例):
1: [TestMethod(), Description("驗證失敗測試")] 2: public void ValidateFailTest() 3: { 4: Validater validater = new Validater() 5: .AddCondition(true, "Error1") 6: .AddCondition(false, "Error2") 7: .AddCondition(false, "Error3"); 8: 9: ValidateResult validateResult = validater.Validate(); 10: Assert.IsFalse(validateResult.IsValidated); 11: 12: //Validate error message 13: Assert.AreEqual<int>(2, validateResult.ErrorMessage.Length); 14: Assert.AreEqual<string>("Error2", validateResult.ErrorMessage[0]); 15: Assert.AreEqual<string>("Error3", validateResult.ErrorMessage[1]); 16: }