dynamic 类型不能访问属性
Posted love-zf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dynamic 类型不能访问属性相关的知识,希望对你有一定的参考价值。
x
//解决方案ProjectTest.项目A里面
public object r(){ return new {id = 1,name = "zf"}; }
//解决方案ProjectTest.项目B里面 public void GetR(){ var aObj = 项目A.r();
//报错:dynamic明明看到了字段,访问出错Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
var id = aObj.id;
}
去MSDN上查看dynamic的官方文档,也没有发现可疑的地方...没有注意事项啥的...最终发现原因://
最终原因:
引起这种异常的错误是因为匿名类型是不能跨程序集(assembly)的
解决方案.A
使用 Expando
解决方案.B
需要在当前程序集的AssemblyInfo.cs中加上
[assembly: InternalsVisibleTo("ClassLibrary1")]
指定对指定程序集可见即可
原文地址
x
以上是关于dynamic 类型不能访问属性的主要内容,如果未能解决你的问题,请参考以下文章
参数类型“RemoteMessage”不能分配给参数类型“Map<String, dynamic>”
参数类型“User”不能分配给参数类型“Future<dynamic>”。? [复制]