【问题标题】:What keys/values do I add to the dictionary for the TeamProject capabilities property?我要为 TeamProject 功能属性的字典添加哪些键/值?
【发布时间】:2021-11-19 21:30:00
【问题描述】:

我很难弄清楚如何为 Microsoft.TeamFoundation.Core.WebApi.TeamProject 设置 Capabilities 属性。它需要一个 Dictionary>,但我不知道键/值会是什么样子。我需要设置“版本控制”和“工作项流程”。这是我目前所拥有的。

var teamProject = new TeamProject {
                Description = projectDescription,
                Name = ProjectName,
                Visibility = ProjectVisibility.Private,
                //How to set this to "Version Control": Git, and "Work Item Process": Agile
                Capabilities = new Dictionary<string, Dictionary<string, string>>()
};

我知道 Microsoft.TeamFoundation.Core.WebApi 中有一些 HttpClient,但是哪个客户端会给我一个“版本控制”方法和“工作项流程”方法的列表。我如何将它们设置为 Dictionary> 以便 TeamProject 接受它们? 我找到了该属性的页面 (https://docs.microsoft.com/en-us/dotnet/api/microsoft.teamfoundation.core.webapi.teamproject.capabilities?view=azure-devops-dotnet&source=docs#Microsoft_TeamFoundation_Core_WebApi_TeamProject_Capabilities),但我找不到 Microsoft 对该属性的期望的示例。 Dictionary> 含糊不清,没有解释如何为字典设置版本控制和工作项流程。我会期待这样的事情:

var capabilities = new Dictionary<string, string>();
capabilities.Add("Version Control", "Git");
capabilities.Add("Work Item Process", "Agile");

可以看到,这不符合 Dictionary> 的要求,而是 Dictionary 的要求。那么我缺少/需要什么,我是否以正确的方式做事?

【问题讨论】:

    标签: c# dictionary asp.net-web-api azure-devops


    【解决方案1】:

    您可以使用此代码设置capabilities

    private Dictionary<string, Dictionary<string, string>> SetCapabilities(string processName, string versionControl)
            {
                Dictionary<string, string> processProperties = new Dictionary<string, string>();
                processProperties.Add("Agile","adcc42ab-9882-485e-a3ed-7678f01f66bc");
                processProperties.Add("CMMI","27450541-8e31-4150-9947-dc59f998fc01");
                processProperties.Add("SCRUM","6b724908-ef14-45cf-84f8-768b5384da45");
    
                Guid processId = Guid.Parse(processProperties[processName]); 
    
                Dictionary<string, string> processProperaties = new Dictionary<string, string>();
    
                processProperaties[TeamProjectCapabilitiesConstants.ProcessTemplateCapabilityTemplateTypeIdAttributeName] =
                    processId.ToString();
    
                Dictionary<string, string> versionControlProperties = new Dictionary<string, string>();
    
                versionControlProperties[TeamProjectCapabilitiesConstants.VersionControlCapabilityAttributeName] = versionControl =="Tfvc"?
                    SourceControlTypes.Tfvc.ToString():
                    SourceControlTypes.Git.ToString();
    
                Dictionary<string, Dictionary<string, string>> capabilities = new Dictionary<string, Dictionary<string, string>>();
    
                capabilities[TeamProjectCapabilitiesConstants.VersionControlCapabilityName] = 
                    versionControlProperties;
                capabilities[TeamProjectCapabilitiesConstants.ProcessTemplateCapabilityName] = 
                
                    processProperaties;
                    return capabilities;
            }
    

    【讨论】:

    • 谢谢。这正是我想要的。
    猜你喜欢
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多