class MyMaxLength : MaxLengthAttribute
{
public static String MyErrorMessage = "Maksimalna dolžina za polje {0} je {1}";
public MyMaxLength(int length)
{
new MaxLengthAttribute(length);
}
public override string FormatErrorMessage(string name)
{
if (!String.IsNullOrEmpty(ErrorMessage))
{
ErrorMessage = MyErrorMessage;
}
return String.Format(CultureInfo.CurrentUICulture, ErrorMessageString, name);
}
}
但我遇到了MyMaxLength(int length)构造函数的问题。永远不会召唤超类。如何使用预定义的消息创建自己的长度验证。
答案 0 :(得分:2)
构造函数的语法错误。
这是你调用基础构造函数的方法:
public MyMaxLength(int length)
: base(length) // invoke the base constructor
{
}
其他可能值得注意的是,如果要扩展属性,虽然它不是必需的,但强烈建议使用Attribute
后缀。在某些情况下,框架将查找以Attribute
结尾的类型名称。
因此,您的派生类可能被命名为:
class MyMaxLengthAttribute : MaxLengthAttribute
{
public MyMaxLengthAttribute(int length)
: base(length)
{
}