我在界面中有一个验证属性,如
public interface MyInterface
{
[RegularExpression(@"^[A-Za-z0-9\-_ ]+$", ErrorMessage = "No bad characters"]
string Name { get; set; }
}
我希望它的实现能够添加更多验证,比如
public class MyImplementation : IIdentifiable
{
[MaxLength(100), Error Message = "Length must be <= 100"]
public string Name { get; set; }
}
然而,当我测试MyImplementation
时,我注意到正在进行正则表达式验证。这是预期的吗?如果是这样,我怎样才能使接口上的属性传递给实现?或者我可以吗?
答案 0 :(得分:0)
我不希望它起作用。如果您使用接口进行模型绑定,那么我可能希望接口属性能够被MVC反映出来并使用它们,而不是具体的类。在这种情况下,我怀疑你绑定到具体类,并且反射是从该类检索属性,而不是关心接口。
属性是应用于反射成员的元数据 - 因此它取决于MyImplementation或MyInterface是否被重新感染使用哪一个。