【问题标题】:How to get a value for dynamic object's child如何获取动态对象的孩子的值
【发布时间】:2016-01-11 21:38:37
【问题描述】:

我正在开发一个 asp.net mvc-5 Web 应用程序。我在我的 Web 应用程序中调用了一些 power-shell 脚本,并使用 powershell 脚本结果填充了一个动态对象。这是我从运行 powershell 脚本中获得的部分结果:-

谁能告诉我如何访问例如 BaseObject.Build 值?我尝试了以下results[0].BaseObject.Build,但我得到了一个空引用异常。因为results[0].BaseObject 将为空!有人可以就此提出建议吗?

【问题讨论】:

  • 当您执行results[0]. 时,您会在智能感知中看到什么我想您会看到Build 属性。试试results[0].Build.ToString() 如果你能创建一个dotnetfiddle.net 会有所帮助。
  • @mwilson 智能感知不会显示任何东西,因为这是一个动态对象(在运行时构建),所以我假设智能感知将无法提前知道任何关于它的事情是正确的?
  • @mwilson 现在我写了以下结果[0].Build,它在我们有 Windows Server 2008 r2 + IIS-8 的 Live 环境中运行良好,而在我们有 Windows Server 的开发环境中运行良好2008 R" +IIS-7 我需要使用 results[0].BaseObject.Build 来引用它...不知道为什么?

标签: c# asp.net .net dynamic asp.net-mvc-5


【解决方案1】:

尝试通过反射获取BaseObject,如:

results2.GetType().GetProperty("BaseObject").GetValue(results2, null)

results2.GetType().GetField("BaseObject").GetValue(results2, null).

【讨论】:

    【解决方案2】:

    你可以用这个方法

    public static object GetPropValue(object src, string propName)
    {
       return src.GetType().GetProperty(propName).GetValue(src, null);
    }
    

    通过GetPropValue(results[0], "Build")调用这个方法

    它将返回构建值

    如需更多信息,请返回此帖子Get property value from string using reflection in C#

    【讨论】:

      猜你喜欢
      • 2018-12-14
      • 2011-06-28
      • 2023-02-04
      • 1970-01-01
      • 2014-06-13
      • 1970-01-01
      • 2015-02-15
      • 1970-01-01
      相关资源
      最近更新 更多