美文网首页
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