C#数据注释

本文关键字:注释 数据 | 更新日期: 2023-09-27 18:25:09

我想定义除属性名称顶部之外的其他位置的数据注释。我知道我可以这样写代码:

public class student
{
   [Required]
   public string Name {get; set;}
}

但是我正在使用Linq到Sql数据类,我不想更改这些类。我知道我可以用数据注释定义一个新类,但我想知道还有其他方法吗?抱歉英语不好。

C#数据注释

您可以使用DataAnnotations属性装饰类的成员。或者它们可以在元数据伙伴类中。这是一篇解释这种方法的文章。

但是,由于实际的类需要用MetadataType进行修饰,我不知道是否可以使用Linq-to-Sql来实现这一点。

如果您想在不同的文件中添加数据注释:

应用程序启动:

protected void Application_Start()
        {
            //...
            MetadataExtensions.Register();
        }

寄存器:

public static class MetadataExtensions
{
    private static void Register(Type type, Type associatedMetadataType)
    {
        var provider = new AssociatedMetadataTypeTypeDescriptionProvider(type, associatedMetadataType);
        TypeDescriptor.AddProviderTransparent(provider, type);
    }
    public static void Register()
    {
        Register(typeof(Student), typeof(StudentMetadata));
    }
}

在此文件中指定您的注释(无需重新声明所有属性,只需重新声明带有注释的属性):

public class StudentMetadata
{
    [Required]
    public string Name { get; set; }
}