Мой проект требует от меня программного доступа к серверам TFS, которые мы не администрируем, и для получения информации в реальном времени о полях в WorkItemTypes. Я могу получить имена полей и большую часть необходимой мне информации, посмотрев на FieldDefinition в коллекции FieldDefinitions WorkItemType.
public WitType(WorkItemType type)
{
this.Fields = new List<string>();
foreach (FieldDefinition f in type.FieldDefinitions)
{
Fields.Add(f.Name);
}
}
Единственное, чего не хватает, это свойства IsRequired. Я должен быть в состоянии сказать, требуется ли поле.
Я попытался выполнить запрос истории рабочего элемента
WorkItemCollection workItemCollection = workItemStore.Query
foreach (WorkItem workItem in workItemCollection)
foreach (Field field in workItem.Fields)
{
textBox1.Text += field.Name + " is required? " + field.IsRequired.ToString();
}
, а затем проверка свойства IsRequired элемента Field в коллекции полей WorkItem.
Единственная проблема состоит в том, что для данного типа рабочего элемента один рабочий элемент говорит, что требуется заголовок, тогда следующий рабочий элемент будет иметь свойство IsRequired = false.
Есть ли способ определить, требуется ли поле WorkItem, не прибегая к файлу WIT xml? Если нет, есть ли способ получить программный доступ к XML-файлу WIT?