我即將實現一個類來表示驗證錯誤。該類肯定會包含一個名爲Message的字符串值,它是向用戶顯示的默認消息。我還需要一種方法來向程序員表示驗證錯誤。這個想法是,應該有一個簡單的方法來確定是否發生了特定的驗證錯誤。C中驗證錯誤類的明智模式#
實現一個名爲Type的字符串成員會很簡單,但要確定ValidationError是否屬於該類型,我需要記住描述該類型的字符串。
if (validationError.Type == "PersonWithoutSurname") DoSomething();
顯然,我需要更強類型的東西。枚舉將是一件好事:
if (validationError.Type == ValidationErrorType.PersonWithoutSurname) DoSomething();
但考慮到潛在的數百種類型的驗證錯誤的,我可以用一個醜陋的枚舉數百值的結束。
它也發生在我使用的子類:
if (validationError.GetType() == typeof(PersonWithoutSurnameValidationError)) DoSomething();
但後來我的類庫散落着幾百個類,其將主要每一次使用。
你們是做什麼的?我可以花幾個小時在這種事情上苦苦掙扎。
回答誰來提出我使用的建議。枚舉建議是要擊敗的。
那麼代碼是什麼將檢查驗證結果,看看客戶的姓是空的? – David 2010-07-29 15:59:51
字符串的默認值是「{propertyname}不能爲空」,這會導致「姓氏不能爲空」。 – 2010-07-29 16:03:36
如果您想覆蓋默認消息,則只能使用WithMessage。默認消息是在resx文件中的幫助,所以如果你喜歡,你可以改變它們。還有許多語言的默認消息的resx文件。 – 2010-07-29 16:04:00