2011-10-07 56 views
1

我有了幾個屬性的一類情況:顯示名稱打印在C#中

Public Class Status 
{ 
     [DisplayName("Power"), Description("Index 4: transmit power in dBm")] 
     public double PwrdBby10 
     { 
      get { return (_arrayValue[4]/10.0); } 
     } 

     [DisplayName("Turbo"), Description("Index 5: transmit turbo size and encoding rate")] 
     public string TurboMsgType 
     { 
      get { return GetEnumString(_arrayValue[5], _elements); } 
     } 
} 

,我有一個反射功能,將比較同一類的兩個對象,並打印出不同的特性。

public string Compare(object object1, object object2) 
    { 
     var source = object1.GetType(); 
     var propertyNames = source.GetProperties(); 
     var s = new StringBuilder(); 

     foreach (var propertyName in propertyNames) 
     { 
      var propertyValue1 = propertyName.GetValue(object1, null); 
      var propertyValue2 = propertyName.GetValue(object2, null); 
      if (propertyValue1.ToString() != propertyValue2.ToString()) 
      { 
       if (s.Length > 0) 
        s.Append(", "); 
       s.Append(propertyName.Name); 
       s.Append("="); 
       s.Append(propertyValue2.ToString()); 
      } 
     } 
     return s.ToString(); 
    } 

當我得到的結果我得到這樣的"PwrdBpy10 = value"屬性的名稱;相反,我想打印displayName"Power = value"

你能解釋我如何才能使它工作嗎?

回答

1

您應該試試link。我希望它可以幫助

+0

嗨,它沒有爲我工作,沒有DisplayName。任何其他想法?謝謝 – jprbest

+0

試試這個[link](http://alandjackson.wordpress.com/2011/01/06/c-display-name-from-property-using-reflection/) –

+0

感謝這次它的工作 – jprbest