评估监视窗口中的动态属性

时间:2016-07-15 08:54:56

标签: c# .net visual-studio-2015 visual-studio-debugging roslyn

我正在为我的API编写一些系统测试。因为我想要捕获向后兼容性问题,所以我没有使用动态来引用合同模型。

在代码中,我可以查看动态对象的属性;但是,如果我尝试在监视窗口中评估相同的表达式,它将失败,并显示以下错误:

  

错误CS1061:'对象'不包含的定义   ' productDefinitionId'没有接受第一个的扩展方法   类型'对象'可以找到(你错过了指令吗?   或汇编参考?)

enter image description here

快速观看/即时窗口中的情况相同。我记得能够做到这一点,但我最近升级到了VS2015,因此使用了新的Roslyn编译器(虽然我还在使用C#5.0) - 这可能是吗?如果是这样,为什么?

更新

public dynamic LastAddedOrEditedProduct { get; private set; }

private void SetProductResponse(HttpResponseMessage response)
{
    var result = response.Content.ReadAsStringAsync().Result;
    LastAddedOrEditedProduct = JsonConvert.DeserializeObject<dynamic>(result);
}

其中结果是JSON,如

{
  "productDefinitionId": 222
}

1 个答案:

答案 0 :(得分:0)

您必须使用.Value,然后继续使用下一个对象。

lastAddedProduct.Value.productDefinitionId