2014-02-17 3 views
1

Как я могу запросить элементы списка точек доступа с помощью мыла в C#? Код, который должен запрашивать данные, будет размещен на одном хосте (sharepoint 2007, .net 2.0). Список, расположенный на другом хосте (Sharepoint 2010). Насколько я знаю, я не могу использовать для этой цели SPSite, SPWeb ..Sharepoint List Items Query

using(SPSite site = new SPSite("http://hostname/...")) { 
    using(SPWeb web = site.OpenWeb()) { 
    ... 

Может кто-нибудь дать мне пример того, как это можно сделать? Tnx!

+0

Пожалуйста, обратите внимание на мой ответ. – JuniorCoder

ответ

0

Вы можете использовать SharePoint soap web services. Или, если вы получаете данные из SharePoint 2010, вы можете использовать свой номер rest api.

2

Чтобы интегрировать два разных экземпляра sharepoint, вы должны использовать веб-службы sharepoint.

  1. В вашем проекте создания веб-ссылки на следующий адрес: http://sharepointserver/_vti_bin/lists.asmx

  2. Создать подключение к веб-службы:

    var client = new SharePointWebServices.Lists { Credentials = new NetworkCredential("username", "password") }; 
    var xmlDoc = new XmlDocument(); 
    var viewFields = xmlDoc.CreateElement("ViewFields"); 
    viewFields.InnerXml = "<FieldRef Name=\"ows_FIELD YOU WISH TO RETRIEVE\" />"; 
    var listGuid = ConfigurationManager.AppSettings["GUID_OF_LIST"]; 
    XmlNode listItems = client.GetListItems(listGuid, null, null, viewFields, 
                   null, null, null); 
    
  3. Теперь вы получили вашу коллекцию. просто перебирайте xmlDoc, извлеченный из webservice. Я делаю это так:

    foreach (XmlNode node in listItems) 
    { 
        if (node.Name == "rs:data") 
        { 
         for (int f = 0; f < node.ChildNodes.Count; f++) 
         { 
         if (node.ChildNodes[f].Name == "z:row") 
         { 
          var xmlAttributeCollection = node.ChildNodes[f].Attributes; 
          if (xmlAttributeCollection != null) 
          { 
           string listItem = xmlAttributeCollection["ows_ows_FIELD YOU WISH TO RETRIEVE"].Value; 
          } 
         } 
         } 
        } 
    } 
    
+0

Помогло ли это? – JuniorCoder

+0

Im рад, что я мог бы помочь. – JuniorCoder

+0

Из моего опыта, 'viewFields' также может быть' null' – Pakman