Напоследък ми се налага да работя с LINQ to XML за интеграционни сценарии включващи Silverlight и SharePoint. LINQ to XML е страхотно – сравнително по-добре от създаване на XML чрез обекти като XmlDocument.
Ето пример – повиквам GetListItems() метода на Lists.asmx. Със следният код извличам list items от Task списъка създадени от специфичен user. Този пример би трябвало да работи както за WSS v3, така и за MSF v4.
new XElement(“Where”,
new XElement(“Eq”,
new XElement(“FieldRef”, new XAttribute(“Name”, “Author”), new XAttribute(“LookupId”, “True”)),
new XElement(“Value”, new XAttribute(“Type”, “User”), userID)
)));
XElement queryOptions = new XElement(“QueryOptions”);
XElement viewFields = new XElement(“ViewFields”);
_listService.GetListItemsAsync(“Tasks”, null,
query, viewFields, “100”, queryOptions, null, null);
userID e SharePoint ID-то на потребителя, за който искам да видя резултатите. Можете да получите тази информация от usergroup.asmx.
Успех!