1

Rally のストーリー (階層的な要件) と欠陥のリストを Web ページに表示しようとしています。

欠陥には「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)

だから、フロントエンドコードでその存在をチェックできないという意味ではないことを願っています.

4

1 に答える 1

2

HasMember を試してください:

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

Rally.RestApi.DynamicJsonObject のメソッド/名前空間は、開発者ポータルの完全な API ドキュメントで確認できます。

Rally REST API .NET 名前空間

于 2013-02-05T04:55:50.053 に答える