我已经使用 .Net 语言 4 年了。我使用 WCF 开发 3 层和 5 层应用程序,用于 Web 应用程序的 ASP.NET 和用于 Windows 应用程序的 C#。每次我开始一个项目时,业务规则和验证都是一个问题。
我应该在哪里放置自定义验证规则(按钮单击事件、页面加载或在我的类中的 setter/getter 中)?
如果一个项目很大并且只有一个字段而不是 5 个字符应该是 7 个字符 - 为什么要重建整个项目(或业务类项目)?
我想如果我有一个包含自定义规则的文件,那么当需要更改时,我可以简单地在其中放置一个新规则。我在互联网上阅读了一些为此目的提供基于 XML 的文件的文章,但这似乎有问题,因为:
- XML 文件中没有 Intellisense 和错误很难找到
- 我们必须编写自定义 XML 解析器
- 由于此方法需要多次转换,因此非常慢
我的问题:
是否有使用 .NET 方法(反射、表达式树、Lambda 表达式、动态、DLL 的运行时创建等)的设计模式或其他任何方法来使用自定义规则进行动态验证?
编辑 1)
属性呢?我们可以将它们与反射到自定义验证一起使用吗?我们可以使用这种方法根据另一个属性(例如 P1 应该是 P2+1)来验证一个属性吗?