§ ITPOW >> 文档 >> C#

dynamic 与 ExpandoObject 返回值时错误两则

作者:vkvi 来源:ITPOW(原创) 日期:2023-9-12
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 方法那里,两台电脑无论如何都报错。

相关文章