gpt4 book ai didi

.net - DataAnnotations 与 IDataErrorInfo

转载 作者:行者123 更新时间:2023-12-04 10:06:03 24 4
gpt4 key购买 nike

DataAnnotations 与 IDataErrorInfo

两者的优点和缺点?
一个比另一个的好处? (尤其是与 MVC 相关的)

最佳答案

因为我不想开始一个新问题,所以迟到了讨论。我的出发点是确定应用于中型 ASP.NET MVC 项目的最佳实践。

让我先总结一下我们的选择:-

1) IDataErrorInfo 实现简单。您只需要在 Model 类中派生 IDataErrorInfo 即可。问题是你让你的模型绑定(bind)来执行你的业务规则。业务规则应由模型强制执行。 IDataErrorInfo(同样适用于 DataAnnotations)的另一个问题是(从 Steven Sanderson's book 解释它不能报告与单个属性相关的多个错误或与 whle 对象模型相关的多个错误。

2)对我来说,DataAnnotation 就像一个模式检查(验证)。这是您的应用程序应该做的第一个检查。但是(恕我直言),它不适合实现您的业务规则。

3)实现你自己的ModelBinder。虽然这可以做到,但认真地说,ModelBinder 的用途是解析数据并将其绑定(bind)到模型,而不是执行复杂的验证和业务规则检查。我会让业务规则检查在您的模型/域层中实现。

4) 自己动手——使用服务层进行验证(参见 this。所示示例的优点是使用接口(interface)类从 Controller 和模型状态中解耦。另一种选择是从模型层抛出适当的异常。当您在单独的应用程序(例如 WCF 应用程序)中实现服务层时,后一个选项很有用。

你怎么看?对于大中型项目,您使用过(或打算采用)以上哪些选项,为什么?

干杯

关于.net - DataAnnotations 与 IDataErrorInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2103770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com