当前位置: 欣欣网 > 码农

.NET 8 增强了原生数据注解功能

2024-01-30码农

.NET 8 带来了新的 DataAnnotations , 您可以使用它验证字符串的最小和最大长度,数值的最小和最大范围,指定允许和拒绝的值, Base64 字符串验证。

unset unset 如何使用 unset unset

下面的 Product 类使用了 .NET 8 的新数据注解特性。

public classProduct
{
[Length(2, 20)]
publicstring Name { getset; }
[Range(1, 1000, MinimumIsExclusive = true, MaximumIsExclusive = false)]
publicdouble Price { getset; }
[AllowedValues("IOS""Android")]
publicstring Platform { getset; }
[DeniedValues("PC")]
publicstring Source { getset; }
[Base64String]
publicstring Description { getset; }
}


LengthAttribute

System.ComponentModel.DataAnnotations.LengthAttribute 指定字符串或集合的下限和上限。比如 Name ,最小值应为 2,最大值应为 20:

[Length(2, 20)]
publicstring Name { getset; }

这意味着 Name 必须包含 2 到 20 个字符,否则无效。

Range

RangeAttribute.MinimumIsExclusive 和 RangeAttribute.MaximumIsExclusive 指定数字是否包含在允许范围内。

[Range(1, 100, MinimumIsExclusive = true, MaximumIsExclusive = false)]
publicdouble Price { getset; }

Range 表示在指定的范围内,当前的 Range 的值应该为 1-100, MinimumIsExclusive = true 表示不包含最小值,MaximumIsExclusive = false 表示允许包含最大值,所以 Price 的范围是 1 < Price <= 100 ,超过这个范围的值是不允许的。

Base64StringAttribute

Base64StringAttribute 验证字符串是否为有效的 Base64 表示形式,这很简单。

[Base64String]
publicstring Description { getset; }

AllowedValuesAttribute & DeniedValuesAttribute

AllowedValuesAttribute 和 DeniedValuesAttribute 指定允许和拒绝的值。

[AllowedValues("IOS""Android")]
publicstring Platform { getset; }

上面的 Platform 属性,只允许使用 IOS 和 Android。

[DeniedValues("PC")]
publicstring Source { getset; }

同样的,上面的 DeniedValues 表示,Source 属性的值不应该为 PC。


.NET 8 给数据注解特性带来了增强,在日常的开发过程中,也许使用官方提供的数据注解就能满足我们的需求,而不需要使用第三方的验证库,这非常方便。

往期推荐