2011-09-07 16 views
17
class SomeModel 
{ 
    [Display(Name = "Quantity Required")] 
    public int Qty { get; set; } 

    [Display(Name = "Cost per Item")] 
    public int Cost { get; set; } 
} 

Modeli, { PropertyName, DisplayName } çiftleri listesine eşlemeye çalışıyorum ama sıkışmış durumdayım. PropertyInfo özelliklerinden yararlanın PropertyInfo

var properties 
    = typeof(SomeModel) 
     .GetProperties() 
     .Select(p => new 
      { 
       p.Name, 
       p.GetCustomAttributes(typeof(DisplayAttribute), 
           false).Single().ToString() 
      } 
     ); 

yukarıda derleme değil ve ben yine doğru yaklaşım olduğundan emin değilim, ama umarım kastı da görebilirsiniz. Herhangi bir işaretçi? Teşekkürler

cevap

25

Anonim tür için özellik adlarını tanımlamanız gerekir.

var properties = typeof(SomeModel).GetProperties() 
    .Where(p => p.IsDefined(typeof(DisplayAttribute), false)) 
    .Select(p => new 
     { 
      PropertyName = p.Name, p.GetCustomAttributes(typeof(DisplayAttribute), 
       false).Cast<DisplayAttribute>().Single().Name 
     }); 
+0

Mükemmel, teşekkürler – fearofawhackplanet

+0

@fearofawhackplanet, Rica ederim! –

İlgili konular