在面向.NET标准1.4的库中使用MetadataType属性,可以通过以下步骤实现:
using System.ComponentModel.DataAnnotations;
public class PersonMetadata
{
[Required(ErrorMessage = "姓名是必填项")]
public string Name { get; set; }
[Range(18, 99, ErrorMessage = "年龄必须在18到99之间")]
public int Age { get; set; }
}
using System.ComponentModel.DataAnnotations;
[MetadataType(typeof(PersonMetadata))]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
using System;
using System.ComponentModel.DataAnnotations;
public class Program
{
public static void Main()
{
var person = new Person();
var validationContext = new ValidationContext(person, null, null);
var validationResults = new List<ValidationResult>();
bool isValid = Validator.TryValidateObject(person, validationContext, validationResults, true);
if (!isValid)
{
foreach (var validationResult in validationResults)
{
Console.WriteLine(validationResult.ErrorMessage);
}
}
}
}
以上就是在面向.NET标准1.4的库中使用MetadataType属性的方法。通过使用元数据类和MetadataType属性,可以将属性和验证规则从实体类中分离出来,使代码更加清晰和可维护。在.NET开发中,这种方法常用于实现数据注解验证。腾讯云提供了丰富的云计算产品,如云服务器、云数据库、云存储等,您可以根据具体需求选择适合的产品。详细的产品介绍和文档可以在腾讯云官方网站上找到:https://cloud.tencent.com/。
领取专属 10元无门槛券
手把手带您无忧上云