为什么ExpandoObject不能按预期工作?

时间:2012-07-25 12:58:17

标签: c# .net dynamic

目前,甚至在我的机器上使用“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());

(from this website)

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

(from the MSDN examples)因RuntimeBinderException而失败。我认为我错误配置了一些东西,但我对它可能是什么感到茫然。

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

2 个答案:

答案 0 :(得分:2)

删除隐藏的&#34; SolutionName.suo&#34;解决方案目录中的文件为我修复了这个问题。

我仍然不知道为什么会发生这种情况。

修改 Andras Zoltan删除了他的答案,猜对了。我已经&#34;打破所有例外&#34;启用并且是愚蠢的。 =)

答案 1 :(得分:0)

问题只是Console.WriteLine有太多的重载,因此动态部分无法正确计算出来。 将输出放入类型变量之前或仅将其转换为输入。 e.g。

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