C# 派生的RequiredAttribute不';行不通

C# 派生的RequiredAttribute不';行不通,c#,.net,asp.net-mvc,asp.net-mvc-2,data-annotations,C#,.net,Asp.net Mvc,Asp.net Mvc 2,Data Annotations,我正在尝试实现自己的RequiredAttribute,在其中我调用了一个自定义资源处理程序: public class LocalizedValidationAttributes { public class LocalizedRequiredAttribute : RequiredAttribute { private String _resourceString = String.Empty; public new String Error

我正在尝试实现自己的RequiredAttribute,在其中我调用了一个自定义资源处理程序:

public class LocalizedValidationAttributes
{
    public class LocalizedRequiredAttribute : RequiredAttribute
    {
        private String _resourceString = String.Empty;

        public new String ErrorMessage
        {
            get { return _resourceString; }
            set { _resourceString = GetMessageFromResource(value); }
        }
    }

    private static String GetMessageFromResource(String resourceTag)
    {
        return ResourceManager.Current.GetResourceString(resourceTag);
    }

}
我这样称呼它:

[LocalizedValidationAttributes.LocalizedRequiredAttribute(ErrorMessage = "test")]
public String Text { get; set; }
但是ErrorMessage的getter永远不会被调用

有什么提示吗?谢谢

试着这样做:

public class LocalizedRequiredAttribute : RequiredAttribute
{
    public override string FormatErrorMessage(string name)
    {
        return ResourceManager.Current.GetResourceString(name);
    }
}
public class LocalizedRequiredAttribute : RequiredAttribute
{
    public LocalizedRequiredAttribute(string resourceTag)
    {
        ErrorMessage = GetMessageFromResource(resourceTag);
    }

    private static String GetMessageFromResource(String resourceTag)
    {
        return ResourceManager.Current.GetResourceString(resourceTag);
    }
}
或者像这样:

public class LocalizedRequiredAttribute : RequiredAttribute
{
    public override string FormatErrorMessage(string name)
    {
        return ResourceManager.Current.GetResourceString(name);
    }
}
public class LocalizedRequiredAttribute : RequiredAttribute
{
    public LocalizedRequiredAttribute(string resourceTag)
    {
        ErrorMessage = GetMessageFromResource(resourceTag);
    }

    private static String GetMessageFromResource(String resourceTag)
    {
        return ResourceManager.Current.GetResourceString(resourceTag);
    }
}
然后:

[LocalizedValidationAttributes.LocalizedRequiredAttribute("test")]
public String Text { get; set; }