Есть способ сделать это через веб-сервисы, но я сделал больше с реализацией пользовательских обработчиков событий. Вот немного кода, который будет делать то, что вы хотите. Имейте в виду, что вы можете выполнить это только с сервера, поэтому вы можете захотеть обернуть это в веб-сервис, чтобы разрешить доступ со встроенных устройств. Кроме того, вам нужно будет сослаться на Microsoft.SharePoint.dll в этом коде.
using (SPSite site = new SPSite("http://yoursitename/subsite"))
{
using (SPWeb web = site.OpenWeb())
{
SPListItemCollection list = web.Lists["MyDocumentLibrary"].GetItems(new SPQuery());
foreach(SPListItem itm in list) {
Stream inStream = itm.File.OpenBinaryStream();
XmlTextReader reader = new XmlTextReader(inStream);
XmlDocument xd = new XmlDocument();
xd.Load(reader);
//from here you can read whatever XML node that contains your version info
reader.Close();
inStream.Close();
}
}
}
Операторы using () гарантируют, что вы не создадите утечку памяти, поскольку SPSite и SPWeb являются неуправляемыми объектами.
Редактировать: Если номер версии был перенесен в поле библиотеки, вы можете получить к нему доступ в следующем цикле for:
itm["FieldName"]