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

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

से DisplayAttribute विशेषता जाओ मैं { PropertyName, DisplayName } जोड़ों की सूची में मॉडल मैप करने के लिए कोशिश कर रहा हूँ, लेकिन मैं अटक मिल गया है।PropertyInfo

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

उपर्युक्त संकलन नहीं करता है और मुझे यकीन नहीं है कि यह सही दृष्टिकोण है, लेकिन उम्मीद है कि आप इरादा देख सकते हैं। कोई संकेतक? धन्यवाद

उत्तर

25

आपको अज्ञात प्रकार के लिए गुणों के विभिन्न नामों को परिभाषित करने की आवश्यकता है।

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

बिल्कुल सही, धन्यवाद – fearofawhackplanet

+0

@fearofawhackplanet, आपका स्वागत है! –

संबंधित मुद्दे