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
网友评论