Я использую веб-сервис Sharepoint's Copy.asmx для загрузки устаревших файлов и их метаданных.Цель - настраиваемый список (с вложенными папками и настраиваемыми полями - все в виде текста).
Загрузка файла в порядке, их метаданные в порядке, запросы CAML в порядке, но ....
Одним из моих пользовательских атрибутов является doc_type.Из-за нехватки времени я также установил это как текст.Однако, если пользователи начнут создавать свой собственный контент, я бы предпочел максимизировать рассудительность данных, используя этот doc_type в качестве поля поиска вместо произвольного текста.
Буду признателен за помощь в том, как правильно установить коллекцию FieldInformation.
Размещать весь код излишне, но здесь уместная часть.Я начинаю создавать подробный XML, который представляет каждую папку и файл.Узел «файл» содержит в качестве атрибутов метаданные.Этот блок кода перебирает атрибуты каждого узла.
foreach (XmlAttribute attr in node.Attributes) {
if (attr.Name.StartsWith("c_")) {
spfinWSCopy.FieldInformation fi = new spfinWSCopy.FieldInformation();
fi.DisplayName = attr.Name;
fi.InternalName = attr.Name;
fi.Type = spfinWSCopy.FieldType.Text;
fi.Value = attr.Value;
spfields.Add(fi);
}
}
В конце WS вызывается с использованием:
copyService.CopyIntoItems(destination
, destinationURL
, file.spfieldInfo
, File.ReadAllBytes(AppSettings.getAppPropertyValue(CConstants.SOURCE_FOLDER_KEY_NAME) + "\\" + (file.destinationFolder).Replace("/","\\\\") + file.name)
, out result);
Извините за длинное вступление.Вопрос: как мне переписать следующее для полей поиска?
fi.Type = spfinWSCopy.FieldType.Text;
fi.Value = attr.Value;
Спасибо, Педро