A B*_*A B 2 c# collections tfs-sdk
我想获得的所有名单workitem types,从project collection没有访问project在project collection.
我一直试着到现在
我可以workitemType使用project对象获取所有列表的列表,如下面的代码所示:
TfsTeamProjectCollection tfctc = new TfsTeamProjectCollection(newUri
("http://servername:8080/tfs/teamprojectcollection"));
WorkItemStore wis = tfctc.GetService<WorkItemStore>();
foreach(Project project in wis.Projects)
{
foreach (WorkItemType type in project.WorkItemTypes)
{
Console.WriteLine(type.Name);
}
}
Run Code Online (Sandbox Code Playgroud)
通过搜索获取列表,WorkitemType我来了解TFS中的一个类作为WorkItemTypeCollection.
但在使用它时,我无法获得workitemcollection使用的对象projectCollection.
我试过下面的代码来做到这一点:
TfsTeamProjectCollection tfctc = new TfsTeamProjectCollection(newUri
("http://servername:8080/tfs/teamprojectcollection"));
WorkItemTypeCollection witc = tfctc.GetService<WorkItemTypeCollection>(); // here I am getting nil object every time
// some more code
Run Code Online (Sandbox Code Playgroud)
我想做的事
我想要得到的名单WorkItemTypes中projectcollection.
谁可以帮我这个事?如果我错了,请纠正我.提前致谢.
工作项类型与团队项目相关联,因此您只能获取团队项目的工作项类型.这背后的原因是每个团队项目可以有不同的工作项类型集.即使您发现同名的多个类型,例如"任务"或"错误",每个团队项目也可能已修改其定义.基本上,所有团队项目的组合工作项类型都是团队项目集的工作项类型.
WorkItemTypeCollection您找到的类实际上是WorkItemType实例的容器.Project.WorkItemTypes您已使用的属性将返回WorkItemTypeCollection您可以迭代的属性.但是,此类型未注册为服务 - 这就是tfctc.GetService<WorkItemTypeCollection>()返回null 的原因.
那么,你foreach在示例中嵌套所做的实际上是它的工作原理.您可以使用LINQ来改进它SelectMany,但就是这样:
var workItemTypes = wis.Projects
.Cast<Project>()
.SelectMany(p => p.WorkItemTypes.Cast<WorkItemType>())
.ToArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1702 次 |
| 最近记录: |