有一种方法可以通过 Web 服务来实现,但我在实现自定义事件处理程序方面做得更多。这里有一些代码可以做你想做的事。请记住,您只能从服务器执行此操作,因此您可能希望将其包装在 Web 服务中以允许从您的嵌入式设备进行访问。此外,您需要在此代码中引用 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"]