Использование сбора таксономии из клиентской объектной модели Sharepoint 2013

Я могу успешно вернуть список жанров, которые я сохранил в Sharepoint. Это неофициально TaxonomyCollection Я верю. То, как клиентский объект отправляет его обратно, довольно странно, и его трудно принять и перевести в другую форму. Может я что то не так делаю?

Вот JSON, который я получаю: (См. Элементы в разделе "Жанры"). Я хочу получить Label значение для примера. Выглядит довольно прямо вперед.

Теперь это то, что на самом деле возвращается в объектную модель клиента.

Это просто безумие, вот код, который я написал, чтобы получить ярлык для одного жанра:

var items = clientContext.Web.Lists.GetByTitle("Contacts").GetItems(itemsQuery);
//Execution code removed for brevity
Dictionary<string,object> g = ((Dictionary<string,object>)items.ToList()
                               .First()["Genres"]);
var g2 = g.ToList()[1];
var g3 = (object[])g2.Value;
var g4 = (object[])((Dictionary<string, object>) g3[0]).Values.ToArray();
var g5 = g4[1].ToString();

Как вы можете видеть, это уродливо, и писать оператор linq, чтобы в конечном итоге получить все ярлыки, одинаково уродливо и сложно писать. Я думаю, что я делаю это неправильно. Какие-либо предложения?

1 ответ

Используя это как ссылку.

Решение было:

(items[0]["Genres"] as TaxonomyFieldValueCollection).ToList().Select(x=> x.Label);
Другие вопросы по тегам