protected ExpandoObject Do() { dynamic result = new ExpandoObject(); return result; }
上述代码会出错(return 那):
错误CS0656缺少编译器要求的成员“Microsoft.CSharp.RuntimeBinder.Binder.Convert”
继续:
protected List<ExpandoObject> Do2() { dynamic result = new List<ExpandoObject>(); result.Add(Do()); return result; } protected ExpandoObject Do() { ExpandoObject result = new ExpandoObject(); return result; }
上述代码也会出错(Add 那):
错误 CS0656 缺少编译器要求的成员“Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create”
解决办法:
将 dynamic 改为 ExpandoObject,来解决。
题外
我在其他的简单 dynamic 应用上,也报上述错误,添加 Microsoft.CSharp 引用后,两台电脑,其中一台解决了,另一台依旧,查一下 MS 文档,说文件损坏了。
但是上述 Add 方法那里,两台电脑无论如何都报错。