C# 获取项目集合的所有可用TFS字段
我需要TFS项目集合的所有字段,无需指定工作项。我已经在使用TFSAPI做一些其他的事情,但是我没有发现任何关于这个的东西C# 获取项目集合的所有可用TFS字段,c#,tfs,command-prompt,tfs-sdk,tfs-process-template,C#,Tfs,Command Prompt,Tfs Sdk,Tfs Process Template,我需要TFS项目集合的所有字段,无需指定工作项。我已经在使用TFSAPI做一些其他的事情,但是我没有发现任何关于这个的东西 我发现使用的是witadmin.exe listfields命令,该命令提供了我想要的内容,但是如何在代码中将结果作为集合获得呢?我对命令不是很有经验,我只需要代码中的字段ID和名称,以便在WPF列表视图中显示它们。我是否需要在代码中调用cmd.exe,或者TFS API是否为此提供了扩展方法?我的“老师”说它应该有一个,因为它可以用witadmin.exe完成。witad
我发现使用的是witadmin.exe listfields命令,该命令提供了我想要的内容,但是如何在代码中将结果作为集合获得呢?我对命令不是很有经验,我只需要代码中的字段ID和名称,以便在WPF列表视图中显示它们。我是否需要在代码中调用cmd.exe,或者TFS API是否为此提供了扩展方法?我的“老师”说它应该有一个,因为它可以用witadmin.exe完成。witadmin.exe是一个.NET可执行文件,所以你可以使用Reflector、dotPeek或ilSpy来查看微软是如何实现它的。这似乎就是您要查找的代码片段:
protected void InitFields()
{
if (this.fields == null)
{
FieldDefinitionCollection definitions = new FieldDefinitionCollection(this.Store, false);
List<FieldDefinition> list = new List<FieldDefinition>(definitions.Count);
Dictionary<string, FieldDefinition> dictionary = new Dictionary<string, FieldDefinition>(definitions.Count, this.Store.ServerStringComparer);
for (int i = 0; i < definitions.Count; i++)
{
FieldDefinition item = definitions[i];
if (!item.IsInternal)
{
list.Add(item);
dictionary[item.ReferenceName] = item;
dictionary[item.Name] = item;
}
}
list.Sort(new FieldComparer(this.Store.ServerStringComparer));
this.fields = list;
this.fieldsMap = dictionary;
}
}
受保护的void InitFields()
{
if(this.fields==null)
{
FieldDefinitionCollection定义=新的FieldDefinitionCollection(this.Store,false);
列表=新列表(definitions.Count);
Dictionary Dictionary=新字典(definitions.Count,this.Store.ServerStringComparer);
for(int i=0;i
它将生成集合中所有可用字段的列表
this.Store
是WorkItemStore
的一个实例,我明白了,我不认为您可以查看这样的可执行文件。FieldComparer到底是什么?我找不到那种类型的。我可以得到WorkItemStore,但不能得到FieldComparer。我不知道,当我尝试构建项目时,它找不到类型或命名空间FieldComparer。编译器将如何找到它?我需要一个使用参考吗?我能不能忽略字典和字段比较器并返回列表?我明白了,所以我真的不需要字段比较器,我想我可以用另一种方式对它进行排序。我会试试这个,我想我可以用这个方法,非常感谢,如果有任何问题,我会再次发表评论!