TFS二次开发系列:三、TFS二次开发的第一个实例

  首先我们需要认识TFS二次开发的两大获取服务对象的类。

  他们分别为TfsConfigurationServer和TfsTeamProjectCollection,他们的不同点在于可以获取不同的TFS API服务类。他们的区别如下:

服务

TfsConfigurationServer

(服务器级别)

TfsTeamProjectCollection

(集合级别)

ITeamFoundationRegistry

TFS二次开发系列:三、TFS二次开发的第一个实例

TFS二次开发系列:三、TFS二次开发的第一个实例

IIdentityManagementService

TFS二次开发系列:三、TFS二次开发的第一个实例

TFS二次开发系列:三、TFS二次开发的第一个实例

ITeamFoundationJobService

TFS二次开发系列:三、TFS二次开发的第一个实例

TFS二次开发系列:三、TFS二次开发的第一个实例

IPropertyService

TFS二次开发系列:三、TFS二次开发的第一个实例

TFS二次开发系列:三、TFS二次开发的第一个实例

IEventService

TFS二次开发系列:三、TFS二次开发的第一个实例

TFS二次开发系列:三、TFS二次开发的第一个实例

ISecurityService

TFS二次开发系列:三、TFS二次开发的第一个实例

TFS二次开发系列:三、TFS二次开发的第一个实例

ILocationService

TFS二次开发系列:三、TFS二次开发的第一个实例

TFS二次开发系列:三、TFS二次开发的第一个实例

TswaClientHyperlinkService

TFS二次开发系列:三、TFS二次开发的第一个实例

TFS二次开发系列:三、TFS二次开发的第一个实例

ITeamProjectCollectionService

TFS二次开发系列:三、TFS二次开发的第一个实例

 

IAdministrationService

TFS二次开发系列:三、TFS二次开发的第一个实例

TFS二次开发系列:三、TFS二次开发的第一个实例

ICatalogService

TFS二次开发系列:三、TFS二次开发的第一个实例

 

VersionControlServer

 

TFS二次开发系列:三、TFS二次开发的第一个实例

WorkItemStore

 

TFS二次开发系列:三、TFS二次开发的第一个实例

IBuildServer

 

TFS二次开发系列:三、TFS二次开发的第一个实例

ITestManagementService

 

TFS二次开发系列:三、TFS二次开发的第一个实例

ILinking

 

TFS二次开发系列:三、TFS二次开发的第一个实例

ICommonStructureService3

 

TFS二次开发系列:三、TFS二次开发的第一个实例

IServerStatusService

 

TFS二次开发系列:三、TFS二次开发的第一个实例

IProcessTemplates

 

TFS二次开发系列:三、TFS二次开发的第一个实例

  基本上我们可以通过上面两个类对TFS操作所有功能点。下面我们先看看如何使用TfsTeamProjectCollection获取特定团队集合下的所有项目,并且打印出项目名称。

 //取出团队集合URI下的项目名称,如果团队集合为空则取默认集合下项目
//Uri tfsUri = new Uri("http://pc-20130113jkun:8080/tfs/Calueng");这种将会Calueng团队集合下项目
Uri tfsUri = new Uri("http://pc-20130113jkun:8080/tfs");
TfsTeamProjectCollection server = new TfsTeamProjectCollection(tfsUri);
WorkItemStore workstore = server.GetService<WorkItemStore>();
foreach (Project project in workstore.Projects)
{
Console.WriteLine("DefaultCollection集合下项目名称是:" + project.Name);
}
Console.WriteLine("---------------------------------------------------------------");

  下面的例子将获取我们整个TFS服务器的所有团队集合以及团队集合下的所有团队名称

           //TFS配置服务获取所有项目的名称和所有的团队集合名称
TfsConfigurationServer configserver = TfsConfigurationServerFactory.GetConfigurationServer(tfsUri);
ReadOnlyCollection<CatalogNode> collectNodes =
configserver.CatalogNode.QueryChildren(new[] { CatalogResourceTypes.ProjectCollection },
false, CatalogQueryOptions.None);
foreach (CatalogNode collect in collectNodes)
{
Guid collectid = new Guid(collect.Resource.Properties["InstanceId"]);
TfsTeamProjectCollection teamproject = configserver.GetTeamProjectCollection(collectid);
Console.WriteLine("团队集合名称: " + teamproject.Name);
ReadOnlyCollection<CatalogNode> projNodes = collect.QueryChildren(new[] { CatalogResourceTypes.TeamProject },
false, CatalogQueryOptions.None);
foreach (CatalogNode projnode in projNodes)
{
Console.WriteLine(" 团队项目名称:" + projnode.Resource.DisplayName);
}
}
Console.ReadLine();

TFS二次开发系列:三、TFS二次开发的第一个实例

  最后本实例使用VS2012+TFS2012编写。如需源码请点击 TFSTest1.rar 下载。当然你需要引入TFS的一些API DLL文件。

上一篇:邓_ Php·面试


下一篇:android Handler及消息处理机制的简单介绍