![]() |
1
2
我将验证属性放在特定于上下文的专用编辑模型上。 实体只有适用于的验证 全部的 实体。 |
![]() |
2
2
在我开始讨论如何使用vab之前,让我说您必须仔细考虑验证规则。虽然可以区分角色之间的验证,但这确实意味着一个角色中的用户保存的对象对另一个用户无效。这意味着某个角色的用户可能需要更改该对象才能保存它。当同一用户提升到另一个角色时,也可能发生这种情况。如果你确定要这样做,请继续阅读。 这对企业图书馆来说似乎是个好工作 Validation Application Block (VAB),因为它允许验证这些复杂的场景。当您想这样做的时候,忘记基于属性的验证;它根本不起作用。您需要基于配置的验证才能工作。
使用VAB可以做的是使用保存实际验证的配置文件。这在一定程度上取决于实际的验证规则应该是什么,但是您可以做的是为域中的每个对象创建一个基本配置。然后创建一个或多个包含
只有
扩展验证。比如说,你有一个
您可以根据用户的角色将这些验证合并在一起。例如,这个例子基于配置文件创建了三个配置源:
现在您必须将这些文件合并到(至少)两个配置中。一个包含base+管理器,另一个包含base+管理规则。虽然合并不是现成的支持, this article 会教你怎么做。当使用本文中的代码时,您将能够做到:
最后需要做的事情是将这些验证包装在一个类中,该类根据用户的角色返回正确的集合。你可以这样做:
现在这个
请注意,验证应用程序块不是一个简单的框架。学习它需要一些时间。当您的应用程序足够大时,您的特定需求将证明它的使用是合理的。如果您选择了VAB,请从阅读“开始。 Hands-On Labs “文档。如果您有问题,请在某地回来;-) 祝你好运。 |
![]() |
3
1
直到我听到一个更聪明的想法,我才这么做:
|
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
|
Dansih · .Net核心自定义身份验证方案 2 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 2 年前 |