数据注释或应用程序验证块

2023-12-31

DataAnnotations 和应用程序验证块有什么区别?


DataAnnotations 是一个基于属性的模型,用于“注释”数据,它位于 .NET 框架本身中。它最明显的用途是验证,例如 ASP.NET MVC 所做的那样。 Validation Application Block 本身是一个验证框架,由 Microsoft P&P 团队创建,但它不是 .NET 框架的一部分。它还包含用于“注释”数据的属性,在最新版本 (5.0) 中,这些属性继承自 DataAnnotations,使其在某种程度上可以与 DataAnnotations 互换。

验证应用程序块,或者实际上整个企业库,更专注于企业开发。 VAB 允许许多更复杂的场景。例如,它允许您将验证规则放入配置文件中,或者(需要一些工作)放入代码中。它还允许称为“规则集”的功能,允许对验证进行分组并仅触发对象上的一组规则。对于 VAB 验证而言,没有什么是你不能做的,但这当然是有代价的。代价是复杂性。虽然设计得当,但 VAB 并不容易学习,因为我仍在学习用它做事的新方法。

与DataAnnotations相比,DataAnnotations非常简单,但在涉及更复杂的场景时也非常有限。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据注释或应用程序验证块 的相关文章

  • Visual Studio 2013 中的内存分析

    我想探索如何在我的应用程序中分配内存 我有 C 控制台应用程序并使用 Visual Studio 2013 Professional I go to Analyze gt 性能和诊断并选择 NET内存分配 结果我得到以下总结 图表中每次CP
  • 如何使用 PetaPoco 库自动从数据库创建模型?

    我的数据库中有一个表 我想为其创建一个带有 getter 和 setter 的模型类 对于我项目中的大部分任务 我使用 PetaPoco 我手动创建了模型 但很少有表有很多列 有没有办法使用 PetaPoco 从数据库创建模型 我强烈建议您
  • 为什么 ᏌᏊ ᎢᏳᎾᎵᏍᏔᏅ ᏍᎦᏚᎩ 是美国的本土名称?

    当我使用这段代码时 var ri new RegionInfo us var nativeName ri NativeName why is nativeName然后是字符串 in Cherokee https en wikipedia o
  • 数组与列表的性能

    假设您需要一个需要频繁迭代的整数列表 数组 我的意思是非常频繁 原因可能有所不同 但可以说它位于大容量处理的最内层循环的核心 一般来说 人们会选择使用列表 List 因为它们的大小具有灵活性 最重要的是 msdn 文档声称列表在内部使用数组
  • VS2017在nuget包中将“Build Action”设置为“Content”

    我创建我的nuget包在gitlab使用以下命令行 nuget pack Prop Configuration Release OutputDirectory nuget REPONAME APPNAME APPNAME csproj 如果
  • ELMAH 将其数据保存在哪里?

    我刚刚安装了 ELMAH MVC 更多信息here http nuget org packages Elmah MVC 并且想知道其数据保存在哪里 我读到您可以选择设置数据库进行存储 但似乎默认安装使用 内存中 它是如何工作的 如果我回收应
  • 在 Javascript 中本地化字符串

    我目前正在使用 resx文件来管理我的 NET 服务器端资源 我正在处理的应用程序还允许开发人员将 JavaScript 插入各种事件处理程序中以进行客户端验证等 对我来说本地化 JavaScript 消息和字符串的最佳方法是什么 理想情况
  • 是什么原因导致 Linq 错误:此方法无法转换为存储表达式?

    我有一堆具有相同 select 语句的 Linq to Entity 方法 所以我想我会很聪明 并将其分离到它自己的方法中以减少冗余 但是当我尝试运行代码时 我得到了以下内容错误 该方法不能转化为 商店表达式 这是我创建的方法 public
  • 在 .NET 中记录 StackOverflowException

    最近 我的 NET 应用程序 asp net 网站 中出现了堆栈溢出异常 我之所以知道该异常是因为它出现在我的 EventLog 中 我知道 StackOverflow 异常无法被捕获或处理 但是有没有办法在它杀死您的应用程序之前记录它 我
  • 将文本从文本文件添加到 PDF 文件[重复]

    这个问题在这里已经有答案了 这是我的代码 using FileStream msReport new FileStream pdfPath FileMode Create step 1 using Document pdfDoc new D
  • 当数据验证失败时保留表单字段中的值

    我在弄清楚验证失败时如何保留用户数据时遇到问题 我对 PHP 有点陌生 所以我的逻辑可能会犯一些巨大的错误 目前 如果验证失败 所有字段都会被清除 并且 Post 数据也会消失 这是一些代码 假设用户输入无效电子邮件 我希望保留 名称 字段
  • 反序列化嵌套类时不需要 xmlns=''

    我在尝试在服务器上序列化类 将其发送到客户端并在目标上反序列化时遇到问题 在服务器上我有以下两个类 XmlRoot StatusUpdate public class GameStatusUpdate public GameStatusUp
  • 当用户打开文件时如何锁定对文件的访问?

    我正在编写一个 C NET 程序 该程序使用 XmlSerializer 对当前用户正在处理的项目与 XML 文件进行序列化和反序列化 这工作正常 但我试图找到一种方法来防止两个用户从网络驱动器打开同一个文件并让一个用户覆盖前一个用户的保存
  • WCF 服务调用包装器

    为 WCF 服务调用创建包装器的最佳实践是什么 我认为有必要 为了在同一个地方监视所有呼叫 我正在考虑使用这种代码 这是正确的想法吗 RetType t ServiceExecutionContext
  • 如何为从源文件编译的应用程序分配自定义图标?

    在我的程序中 我使用 CSharpCodeProvider 来从源文件编译另一个应用程序 我使用的代码如下 public static bool CompileExecutable String sourceName FileInfo so
  • 为使用 SSH.NET SshClient.CreateShellStream 执行的命令 (sudo/su) 提供子命令

    我正在尝试使用 Renci SSH NET 从 C Web 应用程序连接到远程 Linux 服务器并执行 shell 脚本 我想一个接一个地运行脚本 但不知道如何运行脚本并读取输出并将其存储在标签中 我已经尝试了下面的代码 但无法一行接一行
  • 如何在加载.NET WinForm应用程序user.config文件时捕获异常?

    有时 在使用默认配置系统的 NET 2 0 WinForm 桌面应用程序中 user config文件将被损坏并且无法再加载 当配置系统尝试加载它时 它会抛出一个System Xml XmlException 抛开 为什么文件首先被损坏 的
  • 如何创建包含 IPv4 地址的文本框? [复制]

    这个问题在这里已经有答案了 如何制作一个这样的文本框 我想所有的用户都见过这个并且知道它的功能 您可以使用带有 Mask 的 MaskedTestBox000 000 000 000 欲了解更多信息 请参阅文档 http msdn micr
  • 从 Excel 应用程序对象中查找位数(32 位/64 位)?

    是否可以从 Microsoft Office Interop Excel ApplicationClass 确定 Excel 是以 32 位还是 64 位运行 Edit该解决方案应该适用于 Excel 2010 和 Excel 2007 此
  • 当从finally中抛出异常时,Catch块不会被评估

    出现这个问题的原因是之前在 NET 4 0 中运行的代码在 NET 4 5 中因未处理的异常而失败 部分原因是 try finallys 如果您想了解详细信息 请阅读更多内容微软连接 https connect microsoft com

随机推荐

  • 仅数学证明助理

    大多数证明助手都是具有依赖类型的函数式编程语言 他们可以证明程序 算法 相反 我感兴趣的是最适合数学且仅适合数学 例如微积分 的证明助手 你能推荐一个吗 我听说过 Mizar 但我不喜欢源代码被关闭 但如果它最适合数学 我会使用它 Agda
  • 如何在具有硬编码凭据的 Android 项目中使用 Google Drive SDK

    如何将凭据硬编码到我的 Google Drive 服务 以便应用程序的用户始终无需身份验证即可访问我的文件 我找到了使用 Java SKD 的解决方案 但这些库不能很好地与 Android 配合使用 https developers goo
  • 我应该使用`!Is Good`还是`Is Good == false`?

    我不断看到代码进行这样的检查 if IsGood false DoSomething or this if IsGood true DoSomething 我讨厌这种语法 并且总是使用以下语法 if IsGood DoSomething o
  • 在kivy中设置全局字体大小

    无论是通过 python 还是 kivy 语言 在 kivy 中设置全局字体大小 即按钮和标签 的首选方法是什么 根据窗口大小按比例动态更改全局字体大小设置的好方法是什么
  • “在此上下文中开始第二个操作” EF core 3.1 并发性重大更改 [重复]

    这个问题已经存在了 我正在从 netcoreapp 2 1 迁移到 3 1 并且发现了 EF core 3 1 的重大更改 但我无法解决 以下内容在 2 1 中有效 因此简单地说数据库上下文在设计上不是线程安全的 并指出其他不涉及此细微差别
  • git中p4merge合并工具出错

    我已经为 p4merge 设置了类路径并设置了文件 gitconfig 但是当 p4merge 工具假设要打开这两个冲突的文件时 我收到此错误 有人知道解决方案吗 添加到类路径 C Program Files Perforce p4merg
  • Delphi 中的类/静态常量

    在 Delphi 中 我希望能够创建一个与类关联的私有对象 并从该类的所有实例访问它 在Java中 我会使用 public class MyObject private static final MySharedObject myShare
  • 在 xaml 窗口和用户控件 WPF 之间传递参数

    如何将参数从 xaml 窗口传递到 WPF 用户控件构造函数 我尝试过创建依赖属性 但失败了 我应该尝试 xaml 扩展还是有其他方法可以做到这一点
  • 使用opencv检测肤色

    如何检测皮肤的颜色使用OpenCV 使用 OpenCV 怎么样 哈尔人脸检测器找到一个面部区域 然后得到平均或最常见的颜色在那个脸部区域 既然应该是肤色 Update 环境 我的镜框将具有面部特征 仅限从头发到肩膀 如附件所示 你真的不需要
  • 片段选项卡和片段活动

    我按照指南使用 Fragments 创建了一个应用程序 以便我可以在更大的屏幕上显示更详细的视图 不过 我也想使用选项卡进行导航 根据指南 选项卡也应该是片段 而不是已弃用的 TabHost 一些谷歌搜索表明你不能 不应该嵌套片段 我的问题
  • 在 Java 中解析日期格式

    我正在尝试用 Java 将日期转换为 Unix 时间戳 我的日期示例为 Fri Jun 05 15 53 07 PDT 2009 我的代码是 DateFormat dateFormat new SimpleDateFormat EEE MM
  • 忽略 R 字符串中的转义字符(反斜杠)

    在 SPSS 中运行 R 插件时 我收到一个 Windows 路径字符串作为输入 例如 C Users mhermans somefile csv 我想在后续的 R 代码中使用该路径 但是需要用正斜杠替换斜杠 否则 R 将其解释为转义符 例
  • 如何在 R 中为 tableGrob 自定义特定列?

    我正在寻找自定义 tableGrob 中的特定列 对于这个可重现的示例 我选择查看自定义理由 假设您有以下数据框 df lt data frame Order c 1 3 Name c Adam Ben Charlie Score c 4
  • 为 R 中具有相同符号的连续数字的每个范围分配一个值

    我正在尝试创建一个数据框 其中存在一列 该列保存表示正数和负数的运行长度的值 如下所示 Time V Length 0 5 2 1 5 1 0 1 1 5 1 5 0 0 0 2 0 2 1 0 2 5 0 0 0 3 0 1 1 75 3
  • PHP exec() 未在输出中返回错误消息

    我正在尝试以 XML 格式获取 svn 命令的某些输出 当我输入有效参数时输出正常 但是 当我输入错误的密码时 输出不会显示错误消息 这是 PHP 代码 exec usr bin svn username something passwor
  • Laravel 4 分页计数

    我在我的特定视图 站点中设置了分页 并且它有效 问题是我有一个 php 计数器 foreach players as player tr td count td 每当我切换页面时 它都会从 1 开始 我怎样才能改变这一点 为了实现这一点 您
  • Selenium 不使用 InternetExplorerDriver 单击按钮的解决方法

    我在网页上有一个按钮 当我通过 IE 运行时 Webdriver 不会单击该按钮 我已经尝试了以下解决方法 但没有成功 通过 JavaScript 点击 JavascriptExecutor driver executeScript arg
  • 在 C 中使用 strncpy 更有效地复制 n 个字符

    我想知道是否有一种更干净 更有效的方法来执行以下操作strncpy考虑到max字符数 我觉得自己做得太过分了 int main void char string hello world foo int max 5 char str mall
  • 从类访问 LocationManager/ LocationListener

    我有点迷失在这里 在我的主要活动中 我注册了一个 LocationManager 并将其连接到 LocationListener 以使用 myLocation getLatitude 等 现在我需要使用另一个类中的 Location 方法
  • 数据注释或应用程序验证块

    DataAnnotations 和应用程序验证块有什么区别 DataAnnotations 是一个基于属性的模型 用于 注释 数据 它位于 NET 框架本身中 它最明显的用途是验证 例如 ASP NET MVC 所做的那样 Validati