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。我想我配置错误了,但我不知道它可能是什么。

我正在使用 .NET v4.0.30319 和 Visual Studio 2010 SP1 Premium。请询问您可能需要知道的其他任何信息。=)

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 回答