10

データ注釈検証属性を使用してエンティティをセットアップしており、静的Validatorクラスを使用してそれを検証しようとしていますが、別の例外が発生しています。これは正しい方法ではありません:

string _ValidateProperty(object instance, string propertyName)
        {
            var validationContext = new ValidationContext(instance, null, null);
            validationContext.MemberName = propertyName;
            var validationResults = new List<ValidationResult>();
            var isValid = Validator.TryValidateProperty(instance, validationContext, validationResults);
            if (isValid)
                return string.Empty;
            return validationResults.FirstOrDefault<ValidationResult>().ErrorMessage;
        }
4

1 に答える 1

12

受け取っているものを述べていませんが、特定のプロパティのを渡す必要があるときにExceptionインスタンスをメソッドに渡しているようです。TryValidateProperty

それ以外の

Validator.TryValidateProperty(instance, validationContext, validationResults);

試す

Validator.TryValidateProperty(propertyValue, validationContext, validationResults);

メソッドに渡す必要がありpropertyValueます(または、遅くなるリフレクションを使用します)

例えば

_ValidateProperty(someObject, "Field1", someObject.Field1);
于 2013-05-30T01:33:00.270 に答える