2017-01-12 7 views
3

ダイナミックタイプのプロパティを取得する方法を知りたいと思います。ダイナミックタイプのプロパティを取得する

これは例として、私は、オブジェクトは次のように返されます、

var result = _files.GetFileContent(reportId).Result; 

一覧を取得するための機能である:私はそれを開くと

enter image description here

を、あなたはプロパティ私を見ることができます持っている:

enter image description here

アイデアは私がプロパティを知らないことです。時間の経過と共に変化する可能性があります。だから私はすべてのプロパティでいっぱいのリストが欲しい。だから私はそれらを動的に使うことができます。

どのように最初の項目(ChargesDelta_DIFF_5、ChargesEfile_RIGHT、ChargesGecep_LEFTなど)からプロパティを取得できますか?

+0

'宣言MyDynamicType'される方法は?コレクションはどのように宣言されていますか? –

+0

https://msdn.microsoft.com/en-us/library/aky14axb(v=vs.110).aspxを試してみましたか? –

+0

これは、ストアドプロシージャから受け取るプロパティに基づいて動的に宣言されます。 – Walter

答えて

4

あなたは、プロパティを取得し、辞書に変換するためにリフレクションを使用することができます。

dynamic v = new { A = "a" }; 

Dictionary<string, object> values = ((object)v) 
            .GetType() 
            .GetProperties() 
            .ToDictionary(p => p.Name, p => p.GetValue(v)); 
+0

これで既存の動的IList を使用するにはどうすればよいですか? – Walter

+1

pとは何ですか?未知の変数を導入するだけでは役に立ちません。 CS1977 \tラムダ式を、デリゲートまたは式ツリータイプにキャストすることなく、動的にディスパッチされた操作の引数として使用することはできません。 – Harmen

+0

私はあなたが何を意味するか分かりません。これは未知の変数ではなく、ラムダ式の引数です。コードはうまくいくはずです。新しい質問を作成してここにリンクできますか?あなたの完全なコードを入れてください。 @harmen –

関連する問題