2016-11-07 27 views
0

我想序列化可能有很多不同類型的對象列表,我在下面的函數中完成了這些列表。但我想給每個對象一個名字。當我使用nameof(LogProperties [i])時,我看到了使用nameof但是「表達式沒有名稱」。有沒有什麼辦法可以實現這一點 - 我在想有沒有辦法爲我想記錄的對象添加元屬性。我願意接受其他建議。表達式沒有名稱錯誤 - 動態C#對象

public static string CreateAdditionaLog(params object[] LogProperties) 
    { 
     var log = new ExpandoObject() as IDictionary<string, Object>; 

     for (int i = 0; i < LogProperties.Length; i++) 
     { 
      var prop = LogProperties[i]; 
      log.Add(prop.GETNAME(), prop); 
     } 
     return Newtonsoft.Json.JsonConvert.SerializeObject(log); 
    } 

回答

0

如果你正在尋找的對象名稱,你可以使用反射來獲取對象

for (int i = 0; i < LogProperties.Length; i++) 
     { 
      var prop = LogProperties[i]; 
      log.Add(prop.GetType().Name, prop); 
     } 
+0

這似乎例如提供對象匿名類型名稱的Type 「Dictionary'2」 – user1102550

+0

對象實際上是否有名稱,或者這是一個匿名對象的集合 –

+0

好點。這是一個參數列表,我認爲我將其轉換爲Expando對象字典。我現在不在我的電腦附近。 – user1102550

相關問題