Если вам нужно использовать веб-службу, вам, вероятно, придется использовать SPQueries (CAML), чтобы получить нужные элементы.
Веб-служба Lists.asmx (расположена под http://sitecollection/_vti_bin/Lists.asmx) имеет функцию с именем GetListItem , которая принимает запрос в качестве параметра.
Я действительно не знаю внутреннюю работу вашего списка, но что-то вроде этого запроса должно делать это:
XmlDocument camlDocument = new XmlDocument();
XmlNode queryNode = camlDocument.CreateElement("Query");
queryNode.InnerXml = "<Where>"
+ "<Eq><FieldRef Name='FileName' /><Value Type='Text'>{Your Filename Here}</Value></Eq>"
+ "</Where>";
XmlNode viewFieldsNode = camlDocument.CreateElement("ViewFields");
viewFieldsNode.InnerXml = "<FieldRef Name='ID' />";
XmlNode queryOptionsNode = camlDocument.CreateElement("QueryOptions");
resultNode = _sharepointSite.ListsWS.GetListItems(listName, viewName,
queryNode, viewFieldsNode, rowLimit, queryOptionsNode, webID);
Объекты _sharepointSite и ListWS являются объектами веб-службы (они должны генерироваться автоматически для вас при добавлении веб-ссылки).
listName - это имя вашего списка всемейство сайтов
viewName - это имя представления, к которому вы хотите запросить (убедитесь, что у вас есть представление, отображающее все элементы, если вы хотите выполнить запрос по всему. Обычно я полагаюсь на скрытые представления, чтобы убедиться, чтопользователи не меняют их)
RowLimit - просто целое число.
У вас не должно возникнуть проблем с поиском идентификатора сети, с которой вы работаете, с помощью веб-службы.
XML, который вы получите обратно, не так прост и требует особого внимания.Дополнительная информация
Обратите внимание, что если вы имеете дело с вложенными папками, вам нужно добавить следующий код:
XmlNode queryOptionsNode = camlDocument.CreateElement("QueryOptions");
queryOptionsNode.InnerXml = "<ViewAttributes Scope=\"Recursive\" />";
Дополнительная информация о том, что я объяснил здесь .