Производный RequiredAttribute не работает - PullRequest
2 голосов
/ 13 сентября 2011

Я пытаюсь реализовать свой собственный 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 никогда не вызывается.

Есть намеки? Спасибо!

1 Ответ

5 голосов
/ 13 сентября 2011

Попробуйте вот так:

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; }
...