我一直使用.Net語言4年。我開發了使用WCF的3層和5層應用程序,用於Web應用程序的ASP.NET和用於Windows應用程序的C#。每次我開始一個項目時,業務規則和驗證都是一個問題。使用自定義規則進行動態驗證
我應該在哪裏放置自定義驗證規則(按鈕單擊事件,頁面加載或在我的類中的setter/getters)?
如果一個項目很大,並且只有一個字段而不是5個字符應該是7個字符 - 爲什麼我應該重建整個項目(或業務類項目)?
我想如果我有一個文件,有我的自定義規則,那麼當需要更改時,我可以簡單地放入一個新規則。我已閱讀,提供用於此目的的基於XML的文件在互聯網上的一些文章,但是這似乎有問題,因爲:
- 沒有智能感知和XML文件中的錯誤是很難找到
- 我們必須寫自定義XML解析器
- 由於這種方法需要大量的石膏,這是非常緩慢的
我的問題:
是否有設計模式或其他使用.NET方法(反射,表達式樹,Lambda表達式,動態,DLL的運行時創建等)使用自定義規則進行動態驗證的設計模式?
編輯1)
什麼屬性?我們可以使用它們反射到自定義驗證嗎?我們可以用這種方法驗證另一個屬性的財產(形式示例P1應該是P2 + 1)嗎?
[屬性](http://msdn.microsoft.com/en-us/library/system.attribute.aspx)爲類提供某種元數據,等等。您可以在'property1'上定義一個自定義屬性'以便它可以與同一個實例的'property2'鏈接。但是這種方法很複雜,導致依賴規則的硬編碼。 –