Rally Rest Api - DynamicJsonObject如何检查密钥是否存在

时间:2013-02-05 04:09:20

标签: rally

我试图在网页上显示Rally的故事列表(层次结构要求)和缺陷。

我们在缺陷上有一个名为“InfraID”的自定义字段,但不是我们的分层要求。有没有办法检测每个DynamicJsonObject是否有一个名为“InfraId”的密钥,以避免它抛出异常?

我已经尝试过TryGetValue,Contains,HasKey认为它被视为字典,但我一直得到一个KeyNotFoundException。 “给定的密钥没有出现在字典中”

这是在Razor ASP.NET MVC视图中使用的。

@if (story.HasKey("InfraID"))
    {
       <td>@story["InfraID"];
       </td>
    }

所以我无法弄清楚if语句可以避免抛出异常。故事的类型为Rally.RestAPI.DynamicJsonObject。

我正在尝试使用相同的html,无论是缺陷还是故事,因为其他一切都运行正常。这只是因为它是缺陷的自定义属性。

如果它有助于似乎相关的堆栈跟踪:

   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Rally.RestApi.DynamicJsonObject.GetMember(String name)
   at Rally.RestApi.DynamicJsonObject.TryGetMember(GetMemberBinder binder, Object& result)

所以我希望这并不意味着我无法在我的前端代码中检查它是否存在。

1 个答案:

答案 0 :(得分:2)

尝试HasMember

bool hasInfraId = story.HasMember("InfraID");

您可以在开发人员门户网站上的完整api文档中找到Rally.RestApi.DynamicJsonObject的方法/命名空间:

Rally REST API .NET Namespace