SPSite

SPSite作为网站集对应的对象模型,其主要的用处是获取某个特定的网站,它最常用的几个功能如下:

 构造函数
SPSite的构造函数有两种,分别以Site的url和Guid作为参数。
在SharePoint对象模型中,大部分对象都拥有一个Guid作为它唯一的标识符,通过这个Guid可以获取该对象的实例,例如Site(SPSite)、Web(SPWeb)、列表(SPList)、视图(SPView)以及SPS中的区域(Area)、门户列表(AreaListing)等。但也有一些是采用整型作为标识符的,例如列表项(SPListItem)、角色(SPRole)和用户(SPUser)等。

  AllWebs属性
该属性是一个SPWebCollection类型的变量,通过这个属性,便可以获取到该网站集中的所有网站,包括一个顶级网站和它下面的所有子网站。然后通过以下三种形式之一,便可以得到某个特定的SPWeb的对象:
·      webs[int index]:根据在该集合中的下标获取一个Web;
·      webs[string url]:根据Web的相对url(相对于包含该网站的Site)获取Web;
·      webs[Guid guid]:根据唯一标识该Web的guid获取。
在WSS对象模型中,集合(Collection)是一个比较重要的概念,它实际上是一种对象的存储方式(即.NET框架中集合的概念)。一般来说SPxxxCollection便是SPxxx这个类所对应的集合类,例如SPWebCollection、SPListCollection和SPFileCollection等。但是应该注意到的是,SPSiteCollection并不是包含在Microsoft.SharePoint命名空间中的类,而是在Microsoft.SharePoint.Administration这一命名空间中的,这也说明了Site的主要意义在于网站本身的管理,而非网站内容的管理。

   RootWeb属性
该属性是一个SPWeb类型的变量,它所对应的对象是该网站集中的顶级网站,通过它可以逐步获得该网站级中的层级结构

  OpenWeb函数
该函数返回一个SPWeb类型的变量,通过该函数可以获得该网站集中一个特定的网站。它有以下三种使用形式:
OpenWeb():在命令行模式中,该方法返回网站级中的顶级网站对象;但是在网络环境中使用该方法会有不同的效果
OpenWeb(Guid guid):返回该guid所对应的网站对象;
OpenWeb(string url):返回该url所对应的网站对象,注意该url为相对地址(相对于服务器根路径或者网站集根路径)。

在这个示例中,展示了SPSite的基本用法,包括上面所提到的几个重要功能:

using System;
using Microsoft.SharePoint;
namespace WSSModelObject
{
    class Example1_1
    {
        [STAThread]
        static void Main(string[] args)
        {
            SPSite site = new SPSite("http://localhost");  // 使用构造函数创建网站集对象
            Console.WriteLine("Root:" + site.RootWeb); // 获取根网站信息
            Console.WriteLine("All Webs in site:"); // 遍历网站集中的所有网站
            foreach(SPWeb web in site.AllWebs)
            {
                 Console.WriteLine(web);
            }
            try   // 打开某个特定的网站
            {
               SPWeb web = site.OpenWeb("subweb1");
                Console.WriteLine(web);
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }
}


在编写程序的过程中,合理地使用try-catch语句是一种良好的编程习惯。SharePoint是一套相对庞大的对象模型体系,在编写程序的过程中,难免会出现预料之外的问题,因此应该尽可能对所有可能出错的语句进行try-catch,如果有必要,捕获每种特定的异常,并提供更加友好的出错信息,使得程序更加人性化。在本书中,为了节省篇幅,除非特殊的需要和说明,在后面的示例程序中一般不进行try-catch处理,请读者注意。

编写SharePoint的程序需要在引用中添加Microsoft.SharePoint.dll,如果是在安装了WSS的机器上,在VS.NET中添加引用界面选择Windows SharePoint Services即可,也可以将dll复制到其他的机器上再引用(但是仍然需要在装有WSS的机器上才能运行),该dll的默认安装路径为:C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\ISAPI。在本书后续章节中除非特殊情况,不再使用完整的代码,而使用代码片段作为示例。
 

原文地址:https://www.cnblogs.com/honkcal/p/2229616.html