2013-03-13 1 views

ответ

0

Вам нужно будет экспортировать определение WorkItemType из TFS, затем найдите поле в xml и используйте значения оттуда. Ниже приведен фрагмент кода, который я использовал для получения списка переходов, если вы считаете, что параметры могут быть в глобальном списке, тогда вы установите флаг в методе экспорта true.

public List<Transition> GetTransistions(WorkItemType workItemType) 
    { 
     List<Transition> currentTransistions; 

     // See if this WorkItemType has already had it's transistions figured out. 
     this._allTransistions.TryGetValue(workItemType, out currentTransistions); 
     if (currentTransistions != null) 
     { 
      return currentTransistions; 
     } 

     // Get this worktype type as xml 
     XmlDocument workItemTypeXml = workItemType.Export(false); 

     // Create a dictionary to allow us to look up the "to" state using a "from" state. 
     var newTransitions = new List<Transition>(); 

     // get the transitions node. 
     XmlNodeList transitionsList = workItemTypeXml.GetElementsByTagName("TRANSITIONS"); 

     // As there is only one transitions item we can just get the first 
     XmlNode transitions = transitionsList[0]; 

     // Iterate all the transitions 
     foreach (XmlNode transition in transitions) 
     { 
      // save off the transition 
      newTransitions.Add(new Transition { From = transition.Attributes["from"].Value, To = transition.Attributes["to"].Value }); 
     } 

     // Save off this transition so we don't do it again if it is needed. 
     this._allTransistions.Add(workItemType, newTransitions); 

     return newTransitions; 
    } 

Переход небольшой класс, который у меня есть, как показано ниже.

public class Transition 
{ 
    #region Public Properties 

    public string From { get; set; } 

    public string To { get; set; } 

    #endregion 
}