2016-11-07 13 views
0

以下の関数で行ったさまざまな種類のオブジェクトのリストをシリアル化したいと思います。しかし、私は各オブジェクトに名前を付けたい。私はnameofを見てみましたが、これを実行すると "式に名前がありません"ということになります--nameof(LogProperties [i])。これを達成する方法はありますか?私はログに記録したいオブジェクトにメタ属性を追加する方法があると考えていました。私は代わりの提案にオープンしています。あなたがオブジェクト名を探しているなら式に名前のエラーがありません - 動的な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

関連する問題