【问题标题】:Cannot get a list of valid users in TFS for AssignedTo field while creating new Workitems via API通过 API 创建新工作项时,无法在 TFS 中为 AssignedTo 字段获取有效用户列表
【发布时间】:2010-12-06 14:56:57
【问题描述】:

您好,我正在尝试通过 TFS API 创建新的工作项,这是我在下面用来获取可以分配工作项的有效用户列表的方法。不知何故,它在 validUserSids 行上给了我一个空引用异常。有人知道这里有什么问题吗?

private string[] TFSUsers(string server)
    {
        // Get a Reference to Team Foundation Server.
        TeamFoundationServer tfs = tfsdata.GetTFS(server);
        // Get a reference to Group Security Service.
        IGroupSecurityService gss = (IGroupSecurityService)tfs.GetService(typeof(IGroupSecurityService));
        // Resolve to SIDs
        Identity validUserSids = gss.ReadIdentity(SearchFactor.AccountName, "TFS Valid Users", QueryMembership.Expanded);
        // Resolve to actual users
        Identity[] validUsers = gss.ReadIdentities(SearchFactor.Sid, validUserSids.Members, QueryMembership.None);
        List<string> Users = new List<string>();
        foreach (Identity user in validUsers)
        {
            Users.Add(user.DisplayName);
        }
        return Users.ToArray();
    }

【问题讨论】:

    标签: visual-studio-2010 tfs tfs-workitem tfs-sdk


    【解决方案1】:

    在 TFS 中获取用户列表的方法如下:

    var tfs = TeamFoundationServerFactory.GetServer("http://vstspioneer:8080/tfs/VSTSDF");
    var workItemStore = (WorkItemStore)tfs.GetService(typeof(WorkItemStore));
    var allowedValues = workItemStore.FieldDefinitions[CoreField.AssignedTo].AllowedValues;
    
    foreach (String value in allowedValues)
    {
        Console.WriteLine(value);
    }
    

    【讨论】:

    • 非常感谢!那肯定更容易。还能像我一样使用组安全服务的身份概念吗?我意识到我的帐户名称错误,应该是“Team Foundation Valid Users”或“Project Collection Valid Users”,但它仍然不起作用。有什么建议吗?
    猜你喜欢
    • 1970-01-01
    • 2017-12-27
    • 2016-10-04
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    • 2011-08-13
    • 2013-11-27
    相关资源
    最近更新 更多