美文网首页
C# dynamic 'object' does not con

C# dynamic 'object' does not con

作者: 不语翕 | 来源:发表于2022-08-18 11:40 被阅读0次

背景

  • dynamic使用linq进行查找,运行正常;但是单测时报错 'object' does not contain a definition for 'xxxx' ;报未定义属性错误

原因

  • 查资料发现:dynamic 匿名类的属性访问权限时internal,只有在同一个程序集内(Assembly)内才可以似乎用;
  • 运行正常是因为调用者和被调用者在一个程序集(类库)内;可以正常使用
  • 使用单测时调用者和被调用者不在同一个程序集内;(调用者是单测的类库)

解决方案

  • 在被调用方的地方使用json序列化,再次反序列化成dynamic 类型

案例

var json = JsonConvert.SerializeObject(dynamicData, Formatting.Indented);
var newdynamicData = JsonConvert.DeserializeObject<List<dynamic>>(json);

//此处使用linq就不报未定义属性(SeriesX)问题了
var xName = newdynamicData .Select(p => p.SeriesX).Distinct().ToList();

相关文章

网友评论

      本文标题:C# dynamic 'object' does not con

      本文链接:https://www.haomeiwen.com/subject/hfdegrtx.html