2016-10-19 51 views
0

我发现多个网站告诉我如何远程访问Sharepoint网站,但似乎没有解释让我回答我正在经历的事情。试图远程访问Sharepoint

  1. 我创建了一个简单的C#控制台应用程序

  2. 在我引用的应用程序: Microsoft.SharepointMicrosoft.Sharepoint.ClientMicrosoft.Sharepoint.Client.Runtime

  3. 我能为Microsoft.SharepointMicrosoft.Sharepoint.Client创建using语句但我没有得到intellisense Microsoft.Sharepoint.Client.Runtime(我只得到应用程序,实用程序,WebParts和Wo rkflow在下拉窗口) - 如果我在使用Microsoft.Sharepoint.Client.Runtime型,我得到的“红色波浪线”下运行时

  4. 注释掉Microsoft.Sharepoint.Client.Runtime,我然后输入以下代码:

    const string FORMAT = "{0}: {1}"; 
    string strURL = "http://<the SPS site address>"; 
    List<string> listFields = new List<string>(); 
    
    using (SPSite oSite = new SPSite(strURL)) 
    { 
        using (SPWeb oWeb = oSite.OpenWeb()) 
        { 
         foreach (SPList list in oWeb.Lists) 
         { 
          foreach (SPField field in list.Fields) 
          { 
           listFields.Add(string.Format(FORMAT, list.ID, field.Title)); 
          } 
         } 
        } 
    } 
    

    注:在这个时间点,有没有错误列表报告

  5. 我然后编译代码(重建)的错误 - 在这一点上,我得到:

    1. 波浪线在这两个 “的Sharepoint” 使用报表
    2. 五(5)错误说明:
      • '的Sharepoint' 命名空间 “微软”(是否缺少程序集引用?)2X
      • 不存在“SPSite的”找不到(是否缺少using指令或程序集引用?)2X
      • “的SPWeb”找不到(是否缺少using指令或程序集引用)1X
+0

你能否从Solution Explorer支杆部分的扩大“参考”截图窗口? – Thriggle

回答

1

如果您未在装有SharePoint的计算机上开发,则无法使用这些SSOM对象。

你应该使用他们的CSOM等价物。

的SPSite - 网站

的SPWeb - 网页

SPList - 列表

其他对象退房MSDN

您只需要参考Microsoft.SharePoint.Client

下面是从MSDN的例子来检索列表中的项目:

  string siteUrl = "http://MyServer/sites/MySiteCollection"; 

      ClientContext clientContext = new ClientContext(siteUrl); 
      SP.List oList = clientContext.Web.Lists.GetByTitle("Announcements"); 

      CamlQuery camlQuery = new CamlQuery(); 
      camlQuery.ViewXml = "<View><Query><Where><Geq><FieldRef Name='ID'/>" + 
       "<Value Type='Number'>10</Value></Geq></Where></Query><RowLimit>100</RowLimit></View>"; 
      ListItemCollection collListItem = oList.GetItems(camlQuery); 

      clientContext.Load(collListItem); 

      clientContext.ExecuteQuery(); 

      foreach (ListItem oListItem in collListItem) 
      { 
       Console.WriteLine("ID: {0} \nTitle: {1} \nBody: {2}", oListItem.Id, oListItem["Title"], oListItem["Body"]); 
      }