2013-05-27 23 views
6

Varlık kurulumumu Data Annotation doğrulama öznitelikleriyle var ve statik Validator sınıfını kullanarak doğrulamaya çalışıyorum ancak farklı istisnalar alıyorum, bu doğru yol değil mi o:System.ComponentModel.DataAnnotations.Validator ile Özellikleri Doğrulama

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

cevap

8

sen almakta oldukları Exception belirtildiği sığınak ama sizi değerini belirli özelliğinin geçen gerekirken sen TryValidateProperty yönteminden otomatik örneğini geçiyoruz görünür.

yerine

Validator.TryValidateProperty(instance, validationContext, validationResults); 

ait

Validator.TryValidateProperty(propertyValue, validationContext, validationResults); 

Eğer (yavaş olacaktır veya kullanım yansıtma) yönteminiz

örn

_ValidateProperty(someObject, "Field1", someObject.Field1); 
aşağı propertyValue geçmek zorunda kalacak deneyin
+1

Eh, sen c doğru, ben nereye değer vermeliydim, bilmiyorum, nerede, gerçekten, gerçek nesne örneği TryValidateProperty özellik değeri pas değil dikkatli olmak için okudum, teşekkür ederim, teşekkür ederim, site bana izin verdiğinde ben ödül vereceğim 12 saat sonra. –