如果属性使用注释属性,为什么设置器必须为空?

赫里伯特·沙纳格尔

我想使用设置器来自动更正值,也想使用RequiredAttribute。但是在这种情况下,RequiredAttribute不起作用,因为设置器不为空。那么,为什么二传手是空的?

    [Required(AllowEmptyStrings = false, ErrorMessage = "The Name cannot be empty. Please correct.")]
    public String Name //{get; set;} <- Required works fine...
    {
        get { return _name; }
        set // <- Required did not work...
        {
            String setValue = Regex.Replace(value, @"^\d+", "");
            setValue = Regex.Replace(setValue, @"[^a-zA-Z0-9_]+", "_");
            _name = setValue;
        }
    }
大卫·L

您的假设实际上是不正确的。您可以使用具有必需属性的自定义设置器。

void Main()
{
    var test = new Test();
    Validator.ValidateObject(test, new ValidationContext(test));    
}

public class Test 
{
    private string _name;
    [Required(AllowEmptyStrings = false, ErrorMessage = "The Name cannot be empty. Please correct.")]
    public String Name
    {
        get { return _name; }
        set 
        {
            String setValue = Regex.Replace(value, @"^\d+", "");
            setValue = Regex.Replace(setValue, @"[^a-zA-Z0-9_]+", "_");
            _name = setValue;
        }
    }
}

此快速而肮脏的测试会抛出您的必需验证消息。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果属性使用注释属性,为什么设置器必须为空?

来自分类Dev

如果“计划的注释”使用的属性为空,则使用默认值

来自分类Dev

如果将属性设置为不同的 bean 列表,是否可以在 Spring 中使用注释创建 bean?

来自分类Dev

为什么必须为片段着色器设置精度?

来自分类Dev

为什么无法为计算属性定义属性观察器?

来自分类Dev

为什么DependencyProperties需要外观属性/获取器/设置器

来自分类Dev

Symfony / Twig:表单属性“操作”为空-为什么?

来自分类Dev

Azure通知中心:为什么NotificationOutcome NotificationId属性为空?

来自分类Dev

为什么此函数的__dict__属性为空字典?

来自分类Dev

为什么我的@lazy属性崩溃了,但是如果我将其设置为非惰性,它会起作用吗?

来自分类Dev

如果我将其设置为使用属性,则managedObjectContext为null,但如果将其设置为链接的控制器,则为非null

来自分类Dev

为什么不能设置属性的属性?

来自分类Dev

为什么类属性需要注释

来自分类Dev

为什么属性设置器无法正常工作?

来自分类Dev

为什么无法从原型上定义的设置器访问属性

来自分类Dev

为什么设置属性失败?

来自分类Dev

如果另一个属性设置为 false,则忽略 FormBuilder 属性验证器规则

来自分类Dev

无法将“ XXX”上的“ XXX”属性设置为“空”值。您必须将此属性设置为“ System.DateTime”类型的非空值

来自分类Dev

如果您已经拥有资源,为什么将ETag设置为必须的要求?

来自分类Dev

为什么必须使用计算属性而不是存储属性来访问convertPoint()

来自分类Dev

为什么“值”属性为空而“值”属性具有正确的值?

来自分类Dev

如果表单属性值为空,请使用Yii规则验证来更改属性名称

来自分类Dev

为什么在iOS7.1 SDK中给委托属性指定了权限但却将其注释为弱?

来自分类Dev

Ionic2-错误-如果在表单标签中使用ngModel,则必须设置name属性或将表单控件定义为“独立”

来自分类Dev

在Java中为什么会出现此错误:“属性值必须为常数”?

来自分类Dev

IBM API管理服务-为什么必须创建“属性”来为后端服务实现SSL?

来自分类Dev

使用NSArray上的valueForKeyPath,如果将属性设置为YES,如何计算BOOL属性

来自分类Dev

名称空间属性已设置,但为空

来自分类Dev

为什么不能使用javascript设置名称属性?

Related 相关文章

  1. 1

    如果属性使用注释属性,为什么设置器必须为空?

  2. 2

    如果“计划的注释”使用的属性为空,则使用默认值

  3. 3

    如果将属性设置为不同的 bean 列表,是否可以在 Spring 中使用注释创建 bean?

  4. 4

    为什么必须为片段着色器设置精度?

  5. 5

    为什么无法为计算属性定义属性观察器?

  6. 6

    为什么DependencyProperties需要外观属性/获取器/设置器

  7. 7

    Symfony / Twig:表单属性“操作”为空-为什么?

  8. 8

    Azure通知中心:为什么NotificationOutcome NotificationId属性为空?

  9. 9

    为什么此函数的__dict__属性为空字典?

  10. 10

    为什么我的@lazy属性崩溃了,但是如果我将其设置为非惰性,它会起作用吗?

  11. 11

    如果我将其设置为使用属性,则managedObjectContext为null,但如果将其设置为链接的控制器,则为非null

  12. 12

    为什么不能设置属性的属性?

  13. 13

    为什么类属性需要注释

  14. 14

    为什么属性设置器无法正常工作?

  15. 15

    为什么无法从原型上定义的设置器访问属性

  16. 16

    为什么设置属性失败?

  17. 17

    如果另一个属性设置为 false,则忽略 FormBuilder 属性验证器规则

  18. 18

    无法将“ XXX”上的“ XXX”属性设置为“空”值。您必须将此属性设置为“ System.DateTime”类型的非空值

  19. 19

    如果您已经拥有资源,为什么将ETag设置为必须的要求?

  20. 20

    为什么必须使用计算属性而不是存储属性来访问convertPoint()

  21. 21

    为什么“值”属性为空而“值”属性具有正确的值?

  22. 22

    如果表单属性值为空,请使用Yii规则验证来更改属性名称

  23. 23

    为什么在iOS7.1 SDK中给委托属性指定了权限但却将其注释为弱?

  24. 24

    Ionic2-错误-如果在表单标签中使用ngModel,则必须设置name属性或将表单控件定义为“独立”

  25. 25

    在Java中为什么会出现此错误:“属性值必须为常数”?

  26. 26

    IBM API管理服务-为什么必须创建“属性”来为后端服务实现SSL?

  27. 27

    使用NSArray上的valueForKeyPath,如果将属性设置为YES,如何计算BOOL属性

  28. 28

    名称空间属性已设置,但为空

  29. 29

    为什么不能使用javascript设置名称属性?

热门标签

归档