目前,甚至在我的机器上使用“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);
(from the MSDN examples)因RuntimeBinderException而失败。我认为我错误配置了一些东西,但我对它可能是什么感到茫然。
我使用的是.NET v4.0.30319和Visual Studio 2010 SP1 Premium。请询问您可能需要了解的任何其他信息。 =)
答案 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);