2008-12-16 21 views
5

Kuruluş Kitaplığı'ndan Doğrulama Uygulama Bloğunu beğendim :-)
Artık asp.net Dinamik Verilerini kullandığımız için, Veri Eklemlerini Winforms'ta kullanmak istiyorum. Böylece tüm şirket üzerinde ortak teknolojilerimiz var.
Ayrıca Veri Ek Açıklamaları kullanımı daha kolay olmalıdır.Veri Annolama Validators Winforms içinde nasıl kullanılır?

Stephen Walter did within asp.net MVC gibi Winforms ile benzer bir şeyi nasıl yapabilirim?

var errors = DataValidator.Validate(obj); 

if (errors.Any()) throw new ValidationException(); 

cevap

9

I Bu aşağıdaki sözdizimini kullanarak herhangi bir nesne doğrulamak için aşağıdaki kodu kullanmak için izin verecek http://blog.codeville.net/category/validation/page/2/

public class DataValidator 
    { 
    public class ErrorInfo 
    { 
     public ErrorInfo(string property, string message) 
     { 
      this.Property = property; 
      this.Message = message; 
     } 

     public string Message; 
     public string Property; 
    } 

    public static IEnumerable<ErrorInfo> Validate(object instance) 
    { 
     return from prop in instance.GetType().GetProperties() 
       from attribute in prop.GetCustomAttributes(typeof(ValidationAttribute), true).OfType<ValidationAttribute>() 
       where !attribute.IsValid(prop.GetValue(instance, null)) 
       select new ErrorInfo(prop.Name, attribute.FormatErrorMessage(string.Empty)); 
    } 
} 

bulunan bir çözelti uyarlanmış. Bunu denemek için var, ama iş yapar gibi görünüyor ... Validate() el ile yapılan çağrı çok hoş değil, ancak bunu önleyebiliriz, bunu UserControls

+0

O gibi: –

+0

içinde uygulayarak Validate() yapamazsınız System.ComponentModel.DataAnnotations.Validator ile değiştirilecek? –

+0

@Rolf: Yalnızca Silverlight veya .Net 4+ sürümlerinde – Darbio

İlgili konular