5

現在、「ExpandoObject」を使用する最も単純な例でさえ、私のマシンでは機能しません。

両方

dynamic obj = new ExpandoObject();
obj.Value = 10;
var action = new Action<string>((line) => Console.WriteLine(line));
obj.WriteNow = action;
obj.WriteNow(obj.Value.ToString());

(このウェブサイトから)そして

dynamic sampleObject = new ExpandoObject();
sampleObject.test = "Dynamic Property";
Console.WriteLine(sampleObject.test);

(MSDNの例から) RuntimeBinderExceptionで失敗します。私は何かを誤って構成したと思いますが、それが何であるかについて途方に暮れています。

.NETv4.0.30319とVisualStudio2010SP1Premiumを使用しています。あなたが知る必要があるかもしれない他の何かを尋ねてください。=)

4

2 に答える 2

2

ソリューションディレクトリにある非表示の「SolutionName.suo」ファイルを削除すると、この問題が修正されました。

しかし、なぜそれが起こったのかはまだわかりません。

編集: 彼の答えを削除したアンドラス・ゾルタンは正しく推測しました。「すべての例外を解除する」を有効にしていて、愚かでした。=)

于 2012-07-25T13:30:16.637 に答える
0

問題は、Console.WriteLine過負荷が多すぎるため、動的部分を正しく把握できないことです。出力を型付き変数に入れる前に置くか、単にキャストします。例えば

dynamic sampleObject = new ExpandoObject();
sampleObject.test = "Dynamic Property";
Console.WriteLine((string)sampleObject.test);
于 2012-07-25T13:12:21.397 に答える