Как динамически устанавливать сообщения проверки для свойств с атрибутом проверки класса - PullRequest
2 голосов
/ 19 апреля 2010

Я пишу атрибут проверки, который находится в классе, но проверяет свойства класса. Я хочу, чтобы он установил проверочное сообщение для каждого свойства, которое он считает недействительным Как мне это сделать?

Это то, что я получил до сих пор:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
    public class LinkedFieldValidationAttribute : ValidationAttribute
    {
        private readonly string[] _properiesToValidate;

        public LinkedFieldValidationAttribute(params string[] properiesToValidate)
        {
            _properiesToValidate = properiesToValidate;
        }

        public override bool IsValid(object value)
        {
            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(value);

            foreach (var propertyName in _properiesToValidate)
            {
                var propertyValue = properties.Find(propertyName, false).GetValue(value);
                //if value is invalid add message from base
            }

            //return validity
        }
    }

1 Ответ

0 голосов
/ 19 апреля 2010

Используйте другую перегрузку IsValid, которая может вернуть ValidationResult вместо bool.

...