0

今、私はこれをやっています

var data = new JobDataMap(new Dictionary<string,string> { {"obj", "stringify"} });

しかし、私はこれをしたい:

dynamic d = new { obj = "stringify" };
var data = new JobDataMap(d);

これを可能にする秘密の構文糖衣はありますか?

4

1 に答える 1

1

これを行う魔法の方法はありません。コンパイル時に、Dynamic オブジェクトが実際に Dictionary であることをコンパイラが認識できる方法はありません。

そうは言っても、それを Dictionary に変換する拡張メソッドを作成して、次のようなことができるようにすることができます。

dynamic d = new { obj = "stringify" };
var data = new JobDataMap(d.ToDictionary());

このブログ投稿では例を示しています: http://blog.andreloker.de/post/2008/05/03/Anonymous-type-to-dictionary-using-DynamicMethod.aspx

于 2013-05-14T23:03:14.057 に答える