получить список listItem.fieldValues ​​Клиентская объектная модель Sharepoint 2010

Я создаю инструмент экспорта Sharepoint 2010 для резервного копирования (что-то вроде файлового менеджера от Metavis).

При загрузке файла на локальный диск мне нужно создать резервную копию метаданных, связанных с документом. Который я буду хранить в csv-файле. Мой первый подход заключался в повторении всех значений listItem.field, но на самом деле это не работает, поскольку некоторые значения полей являются сложными типами, которые без необходимости усложняют файл резервной копии. Некоторые значения даже имеют окончание строки, например «MetaInfo». Кроме того, не все значения необходимы для восстановления содержимого, когда это может быть необходимо.

Итак, моя идея состоит в том, чтобы получить только те значения из коллекции Fieldvalues, которые необходимы для функционального восстановления, дополненные всеми метаданными, добавленными пользователем.

Для этого я хочу проверить все значения полей в списке исключений, чтобы увидеть, присутствует ли он. Если он присутствует, не делайте резервную копию. Если это так, то это либо пользовательские метаданные, либо значение, которое мне нужно, например, «автор», «создано».

Итак, мой вопрос: кто-нибудь знает список всех ключей значений полей? Или есть лучший подход к моей проблеме?

Спасибо

Обновление: Ну, я так или иначе перебирал коллекцию FieldValues. Было легко сделать дамп всех значений в CSV. Одного запуска было достаточно, чтобы получить все значения. Теперь все, что мне нужно написать, это XML-файл для конфигурации. Это оставляет вопрос: есть ли лучший способ сделать это?


person Sigur    schedule 29.09.2011    source источник


Ответы (2)


Отфильтруйте поля списка, написав следующий код с помощью System; с помощью Microsoft.SharePoint.Client;

    clientContext.Load(
         listItems,
         items => items
             .Include(
                 item => item["Title"],
                 item => item["Category"],
                 item => item["Estimate"]));

Источник: http://msdn.microsoft.com/en-us/library/ee857094.aspx#SP2010ClientOM_Creating_Windows_Console_Application

Вы можете создать представление со всеми полями, получить представление с помощью объектной модели sharepoint и получить имя столбца из коллекции и отфильтровать их в соответствии с вашими требованиями.

person Sachin    schedule 17.11.2011
comment
Я использовал клиентскую объектную модель. Насколько я могу судить из вашего фрагмента кода, все еще требуется некоторая конфигурация; при извлечении элементов со строкой эта строка должна быть как-то известна. Что возвращает нас к началу. Как узнать все значения? - person Sigur; 14.12.2011

Я закончил приложение. Как я писал в своем обновлении, я составил список всех значений полей, экспортировав их в файл CSV. После этого я сделал конфигурационный файл с логическим значением «Резервная копия». Это позволяет контролировать, какие значения следует использовать при создании резервной копии.

Оглядываясь назад, я думаю, что файл конфигурации не был нужен. Значения, используемые при резервном копировании, настолько важны для всей работы программы, что файл конфигурации создает у администратора или случайного будущего разработчика впечатление, что простая перенастройка удовлетворит их потребности.

Теперь я вижу, что если программу необходимо изменить из-за новых требований, код все равно придется изменить. Таким образом, даже если установить значение «Истина», вывод изменится. Также должен быть написан какой-то другой код. Если бы мне пришлось писать это снова, я бы, вероятно, использовал константы. Это делает все это менее динамичным, но все же удовлетворяет потребности программы.

(Кстати, было бы неплохо начать со списка всех имен из стандартных значений полей. Я бы опубликовал его здесь, но у меня больше нет доступа к файлу, потому что я недавно сменил работу.)

person Sigur    schedule 14.12.2011