2017-12-05 5 views
0

だから私はこのようなことの内側一部のリストでdynamic objectを持っている:DynamicAssemblyオブジェクトからコンテンツを取得する方法は?

ob 
data 
    [0] 
    List one 
     [...] 
    [1] 
    List two 
     [...] 

私はリストから値を回復することはできません、私はデータレベルでこだわっている、私はすでにこの試してみてください。

を私はその中のリストの中に入ることができますどのように

valor 
    [0] 
    List one 
     [...] 
    [1] 
    List two 
     [...] 

object valor = t3.GetProperty("data").GetValue(ob, null); 

、私はこのような構造を持つ一つのオブジェクトを得ましたか。申し訳ありませんが、私はすでに、オブジェクトやノートからデータを消費するという例を検索するのに数時間を費やしています。私はから値を取得したいフィールドのあらゆるレベルで検索する必要があり、このコードで

object ob = MyObject; 
string datalevel = TheLevelIWant; 
         var data = ob.GetType().GetProperty("data").GetValue(ob); 

         if (data.GetType().IsGenericType) 
         { 
          foreach(object obj in (data as IEnumerable).Cast<object>().ToList()) 
          { 
           ob = obj.GetType().GetProperty(datalevel); 
          } 
         } 

+0

あなたのオブジェクト 'Valor'も' ob'の中にありますか? –

+0

いいえ、私は新しいものを作成していましたが、同じ構造で、内部レベルが1つしかありません。この場合、valor = data –

+0

@Lucio_Zenirは私の答えを更新しました。 –

答えて

0

私はこれでそれを把握するには、コードを最も簡単な。 これを行うには再帰的なメソッドを追加するだけです。

関連する問題