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