2013-09-24 9 views
0

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

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

enter image description here

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

enter image description here

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

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

Использование this as a reference.

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

(items[0]["Genres"] as TaxonomyFieldValueCollection).ToList().Select(x=> x.Label);