相关疑难解决方法(0)

DataAnnotations命名空间中的Enum值是否有开箱即用的验证器?

C#枚举值不仅限于其定义中列出的值,还可以存储其基类型的任何值.如果未定义基本类型Int32或仅int使用基本类型.

我正在开发一个WCF服务,需要确信某些枚举具有一个值,而不是所有枚举为0的默认值.我从一个单元测试开始,找出是否[Required]能在这里做正确的工作.

using System.ComponentModel.DataAnnotations;
using Xunit;

public enum MyEnum
{
    // I always start from 1 in order to distinct first value from the default value
    First = 1,
    Second,
}

public class Entity
{
    [Required]
    public MyEnum EnumValue { get; set; }
}

public class EntityValidationTests
{
    [Fact]
    public void TestValidEnumValue()
    {
        Entity entity = new Entity { EnumValue = MyEnum.First };

        Validator.ValidateObject(entity, new ValidationContext(entity, null, null));
    }

    [Fact]
    public void TestInvalidEnumValue()
    { …
Run Code Online (Sandbox Code Playgroud)

c# enums data-annotations

13
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×1

data-annotations ×1

enums ×1