尝试远程访问Sharepoint

时间:2016-10-19 20:03:05

标签: c# sharepoint sharepoint-2010

我发现多个网站告诉我如何远程访问Sharepoint网站,但似乎没有一个解释,更不用说回答我正在经历的问题了。

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

  2. 在app中我引用:  Microsoft.Sharepoint,  Microsoft.Sharepoint.Client,和  Microsoft.Sharepoint.Client.Runtime

  3. 我可以为Microsoft.SharepointMicrosoft.Sharepoint.Client创建使用语句,但我没有获得Microsoft.Sharepoint.Client.Runtime的智能感知(我只获得了应用程序,实用程序,WebParts和工作流程下拉窗口) - 如果我使用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. 然后我编译代码(Rebuild) - 那时我得到:

    1. Squiggles in&#34; Sharepoint&#34;使用陈述
    2. 五(5)个错误说明:
      • &#39;共享点&#39;名称空间中不存在&#34; Microsoft&#34; (你错过了一个装配参考吗?)2X
      • &#39;的SPSite&#39;找不到(你错过了使用指令或汇编引用吗?)2X
      • &#39;的SPWeb&#39;找不到(你错过了使用指令或汇编引用)1X

1 个答案:

答案 0 :(得分:1)

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

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

SPSite - 网站

SPWeb - Web

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"]);
            }