C# 中的 FluentValidation - 使用另一个对象中的属性进行验证

迈克·厄普约翰

我在 .NET Core 2.2 API 中有一个类,我正在对其应用 Fluent 验证。该类具有整数属性public int? PurchasePrice {get;set;}

此属性的父级的父级有一个枚举,我想要做的是当该枚举的值为 4 时,将此PurchasePrice字段设为必需。

我已经开始编写自定义规则,如下所示:-

RuleFor(pd => pd.PurchasePrice).Custom((a, context) =>
{
    var parent = context.ParentContext.InstanceToValidate as ParentObject;
    var parentOfParent = context.ParentContext.ParentContext.InstanceToValidate as GrandParentObject;
});

但是,第二个 ParentContext 在 Intellisense 中根本不存在,并且由于无法识别它也会引发编译错误。

在编写验证规则时,我是否在遍历对象结构方面走错了路?

提前致谢!

注意:检索行var parent按预期工作。

德文·沙阿

也许何时可以在这里解决您当前的需求。但是,如果您需要编写更复杂的验证,则可以使用MustMust允许您访问正在验证的模型,因此您可以在验证函数中访问模型的任何部分。这也是一种编写自定义验证的方式。

考虑到 AdbstractValidator 的类型是父类型(又名模型),其中所述枚举属性是您可以使用Must如下:

RuleFor(pd => pd.PurchasePrice)
    .Must((model, price) => 
    { 
         return model.enum == enum.value && price != null; 
    })
    .WithMessage("Price is required when enum is of value");

必须有几个重载,一个期望以属性值作为第一个参数的函数并返回布尔值。另一个需要两个参数,上下文中的模型,正在验证的属性值并返回一个布尔值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在FluentValidation中检查空白

来自分类Dev

Lightinject中的FluentValidation

来自分类Dev

Lightinject中的FluentValidation

来自分类Dev

如何使用继承从C#中的另一个类进行调用和对象

来自分类Dev

如何在C#中获取另一个对象的属性的对象类型?

来自分类Dev

构造对象,其属性之一依赖于另一个。在C ++中

来自分类Dev

C#中另一个类的对象

来自分类Dev

验证FluentValidation中的整数列表

来自分类Dev

验证FluentValidation中的整数列表

来自分类Dev

使用c#驱动程序在MongoDB中使用此对象的另一个属性更新嵌套集合中的对象属性

来自分类Dev

我在fluentvalidation中的规则中的参数

来自分类Dev

我在fluentvalidation中的规则中的参数

来自分类Dev

在Unity C#中使一个对象从另一个对象中消失

来自分类Dev

在FluentValidation中检查属性在列表中是否唯一

来自分类Dev

如何在FluentValidation中重用数据

来自分类Dev

如何在FluentValidation中重用数据

来自分类Dev

C#与另一个类中的一个类的变量进行交互

来自分类Dev

Objective-C:在另一个类中调用一个类的属性

来自分类Dev

从C#中的列表中删除对象和子对象,使其与另一个列表中的对象属性匹配

来自分类Dev

C#-打印/写出/更改可变的对象列表,属性在另一个类中。(很好的答案)

来自分类Dev

C#WPF中另一个类中的类中的绑定属性

来自分类Dev

在类中声明属性,该类在C ++中具有另一个类型

来自分类Dev

c#根据另一个属性的相同值,从另一个中减去一个json的属性int值

来自分类常见问题

从另一个列表中的列表中的对象获取最大值[C#]

来自分类Dev

从另一个列表中的列表中的对象获取最大值[C#]

来自分类Dev

从ViewController发送大对象到目标C,iOS中的另一个对象?

来自分类Dev

整数输入验证-拒绝非整数输入并在C ++中请求另一个?

来自分类Dev

当可以在另一个对象中更改一个对象时,如何在C ++中使用析构函数

来自分类Dev

FluentValidation-验证列表中的字符串

Related 相关文章

  1. 1

    在FluentValidation中检查空白

  2. 2

    Lightinject中的FluentValidation

  3. 3

    Lightinject中的FluentValidation

  4. 4

    如何使用继承从C#中的另一个类进行调用和对象

  5. 5

    如何在C#中获取另一个对象的属性的对象类型?

  6. 6

    构造对象,其属性之一依赖于另一个。在C ++中

  7. 7

    C#中另一个类的对象

  8. 8

    验证FluentValidation中的整数列表

  9. 9

    验证FluentValidation中的整数列表

  10. 10

    使用c#驱动程序在MongoDB中使用此对象的另一个属性更新嵌套集合中的对象属性

  11. 11

    我在fluentvalidation中的规则中的参数

  12. 12

    我在fluentvalidation中的规则中的参数

  13. 13

    在Unity C#中使一个对象从另一个对象中消失

  14. 14

    在FluentValidation中检查属性在列表中是否唯一

  15. 15

    如何在FluentValidation中重用数据

  16. 16

    如何在FluentValidation中重用数据

  17. 17

    C#与另一个类中的一个类的变量进行交互

  18. 18

    Objective-C:在另一个类中调用一个类的属性

  19. 19

    从C#中的列表中删除对象和子对象,使其与另一个列表中的对象属性匹配

  20. 20

    C#-打印/写出/更改可变的对象列表,属性在另一个类中。(很好的答案)

  21. 21

    C#WPF中另一个类中的类中的绑定属性

  22. 22

    在类中声明属性,该类在C ++中具有另一个类型

  23. 23

    c#根据另一个属性的相同值,从另一个中减去一个json的属性int值

  24. 24

    从另一个列表中的列表中的对象获取最大值[C#]

  25. 25

    从另一个列表中的列表中的对象获取最大值[C#]

  26. 26

    从ViewController发送大对象到目标C,iOS中的另一个对象?

  27. 27

    整数输入验证-拒绝非整数输入并在C ++中请求另一个?

  28. 28

    当可以在另一个对象中更改一个对象时,如何在C ++中使用析构函数

  29. 29

    FluentValidation-验证列表中的字符串

热门标签

归档