2008-09-24 6 views
3

Est-ce que quelqu'un a travaillé avec l'API COM de StarTeam (plus précisément, l'intégration avec C#).API COM de Starteam 2005

J'ai besoin d'écrire une fonction d'assistance qui renvoie une structure de répertoire à partir de Starteam, mais tout ce que j'ai pu récupérer à l'aide de cette API a été une liste de vues.

Est-ce que quelqu'un d'autre a essayé cela?

Répondre

2

le modèle d'objet Starteam est heirachical, les projets contiennent des vues, des vues contiennent des dossiers, les dossiers contiennent des éléments (dossiers enfants, fichiers, de cr etc)

Donc, une fois que vous avez votre liste de vue, vous pouvez obtenir les dossiers qui appartiennent à Dans la vue, vous disposez de quelques propriétés qui déterminent la façon dont elles sont mappées au système de fichiers local. L'objet de vue et les objets de dossier ont une propriété de chemin de lecture en lecture seule. Cependant, il existe 4 autres propriétés intéressantes, sur l'objet de vue lu sur les propriétés DefaultPath et AlternatePath et sur l'objet dossier DefaultPathFragment et AlternatePathFragment.

4

Oh, il y a une classe d'aide que vous pouvez utiliser pour faire le travail pour que vous avez appelé FolderListManager

si vous ne voulez pas écrire le code récursif pour naviguer dans le heirachy des dossiers vous-même, dans l'intérêt de l'exhaustivité,
void BtnFindClick(object sender, EventArgs e) 
{ 
    Borland.StarTeam.View v = StarTeamFinder.OpenView("username:[email protected]:49201/Project"); 
    FolderListManager lm = new FolderListManager(v); 
    lm.IncludeFolders(v.RootFolder,-1); // -1 means recursively add child folders 
    StringBuilder sb = new StringBuilder(); 
    foreach(Folder f in lm.Folders) 
    { 
     sb.AppendLine(f.Path); 
    } 
    txtResults.Text = sb.ToString(); 
} 
1

Vous n'avez pas besoin d'utiliser COM pour accéder à l'API StarTeam. Il existe une version .NET du StarTeam SDK disponible.

+1

La version .NET est simplement un wrapper autour de la version COM. – FlySwat

+0

En fait, ce n'est pas vrai. La version .NET est un wrapper autour du Java SDK. Le SDK COM est déprécié. –

Questions connexes