3

私の質問は、C# について非常に単純です。

次の構文で動的型を作成できます。

dynamic dObj = new { P1 = "a", P2 = 1, p3 = DateTime.Now };

同じ結果を得るために、文字列変数からそのオブジェクトを作成する方法はありますか? お気に入り:

string sObj = @"new { P1 = "a", P2 = 1, p3 = DateTime.Now }";
dynamic dObj = [something].fromstring(sObj);

アイデアは、文字列から構築されたオブジェクトからオブジェクトを取得することですか、それともシリアライザーが必要ですか?

4

1 に答える 1

2

それにはコンパイラが必要です。ExpandoObject クラスは、あなたが望むことをほとんど行います:

    dynamic bag = new ExpandoObject();
    bag.P1 = "a";
    bag.P2 = 1;
    bag.p3 = DateTime.Now;

これにより、元のコードの問題も解決されます。匿名型のメンバーには内部アクセシビリティしかありません。つまり、dObj オブジェクトは、同じアセンブリ内に存在するコードでのみ使用できます。

于 2012-08-09T16:01:58.140 に答える