using System; using System.Reflection; namespace Yavsc.Attributes.Validation { public class YaValidationAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { public YaValidationAttribute(string msg) : base(msg) { } public YaValidationAttribute(Func acr): base(acr) { } /// /// Get given string from resources /// specified by ErrorMessageResourceType /// /// /// public virtual string GetResourceString(string stringName) { var prop = this.ErrorMessageResourceType.GetProperty(stringName); if (prop==null) { return " !e! noprop "+stringName+" in "+ErrorMessageResourceType.Name; } else { return (string) prop.GetValue(null, null); } } public override string FormatErrorMessage(string name) { if (ErrorMessageResourceType == null) // failed :/ return base.FormatErrorMessage(name); if (ErrorMessageResourceName == null) // re failed :/ return base.FormatErrorMessage(name); return GetResourceString(ErrorMessageResourceName); } } }