是否可以将 DataAnnotations 与接口一起使用?
我想使用 DataAnnotations 来验证实现某些接口的类,因此我向接口添加验证属性,如下所示:
public interface IUser
{
[Required]
string Name { get; set; }
[Display(Name = "Email Address")]
[Required]
string Email { get; set; }
}
当我尝试使用 Validator.TryValidateObject 时,它不起作用。
有没有办法做到这一点,而不必编写自定义 TryValidateObject
方法?
I want to use DataAnnotations to validate classes that implements some interfaces, and so I'm adding validation attributes to the interface, like this:
public interface IUser
{
[Required]
string Name { get; set; }
[Display(Name = "Email Address")]
[Required]
string Email { get; set; }
}
It doesn't work when I try to use Validator.TryValidateObject
.
Is there any way to make this instead of having to write a custom TryValidateObject
method?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我很惊讶没有人提到 MetadataTypeAttribute。但是,是的,这有效。
至于直接使用接口(使用
Customer: ICustomerMetaData
):虽然 MVC 自动使用 TypeDescriptor 注册元数据,但您可能需要自己手动添加:
输出:
I'm surprised no one mentioned MetadataTypeAttribute. But yes, this works.
As for using an Interface directly (using
Customer: ICustomerMetaData
):While MVC automatically registers the MetaData with the TypeDescriptor, you may have to manually add it yourself:
Output:
如果您使用基类而不是接口,则属性将正常工作。
If you use a base class instead of an interface, the attributes will work fine.