使用拉力赛';是否使用s.NETAPI回调所有工作区的列表?

使用拉力赛';是否使用s.NETAPI回调所有工作区的列表?,.net,api,rally,.net,Api,Rally,登录后我做的第一件事是获取所有工作区名称的列表;更新到最新的DLL后,我当前的方法不起作用。什么需要改变?代码如下: DynamicJsonObject sub=loginRestApi.GetSubscription(“工作空间”) var workspaceNames=sub[“工作空间”]; 迭代。清除(); projects.Clear(); tVFROPGenerator.Nodes.Clear(); tVlistDomainStatus.Nodes.Clear(); cbProjec

登录后我做的第一件事是获取所有工作区名称的列表;更新到最新的DLL后,我当前的方法不起作用。什么需要改变?代码如下:

DynamicJsonObject sub=loginRestApi.GetSubscription(“工作空间”)

var workspaceNames=sub[“工作空间”];
迭代。清除();
projects.Clear();
tVFROPGenerator.Nodes.Clear();
tVlistDomainStatus.Nodes.Clear();
cbProject.Items.Clear();
cbProject.Items.Add(所有_项目);
int indexWorkspace=0;

foreach(子[“工作空间”]中的var workspaceRef)请尝试以下代码:

    using System;
    using System.Collections.Generic;
    using System.Collections;
    using System.Linq;
    using System.Text;
    using Rally.RestApi;
    using Rally.RestApi.Response;

    namespace Rest_v2._0_test
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Initialize the REST API
                RallyRestApi restApi;
                restApi = new RallyRestApi("user@co.com", "secret", "https://rally1.rallydev.com", "v2.0");

                //get the current subscription
                DynamicJsonObject sub = restApi.GetSubscription("Workspaces");

                Request wRequest = new Request(sub["Workspaces"]);

                //query the Workspaces collection
                QueryResult queryResult = restApi.Query(wRequest);

               foreach (var result in queryResult.Results)
                {
                    var workspaceReference = result["_ref"];
                    var workspaceName = result["Name"];
                    Console.WriteLine( workspaceName + " " + workspaceReference);
                }
            }
        }
    }

更改的原因是,最新的库默认使用WSAPI的v2.0,集合(如工作区)不再在单个请求中返回。下面答案中的代码应该满足您的需要。
    using System;
    using System.Collections.Generic;
    using System.Collections;
    using System.Linq;
    using System.Text;
    using Rally.RestApi;
    using Rally.RestApi.Response;

    namespace Rest_v2._0_test
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Initialize the REST API
                RallyRestApi restApi;
                restApi = new RallyRestApi("user@co.com", "secret", "https://rally1.rallydev.com", "v2.0");

                //get the current subscription
                DynamicJsonObject sub = restApi.GetSubscription("Workspaces");

                Request wRequest = new Request(sub["Workspaces"]);

                //query the Workspaces collection
                QueryResult queryResult = restApi.Query(wRequest);

               foreach (var result in queryResult.Results)
                {
                    var workspaceReference = result["_ref"];
                    var workspaceName = result["Name"];
                    Console.WriteLine( workspaceName + " " + workspaceReference);
                }
            }
        }
    }