C#数据注释
本文关键字:注释 数据 | 更新日期: 2023-09-27 18:25:09
我想定义除属性名称顶部之外的其他位置的数据注释。我知道我可以这样写代码:
public class student
{
[Required]
public string Name {get; set;}
}
但是我正在使用Linq到Sql数据类,我不想更改这些类。我知道我可以用数据注释定义一个新类,但我想知道还有其他方法吗?抱歉英语不好。
您可以使用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; }
}