Использование сбора таксономии из клиентской объектной модели 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);