获取对网站、Web 应用程序和其他关键对象的引用

 

若要使用WSS部署,您的代码必须先获取对将要处理的对象(包括网站、网站集和 Web 应用程序)的引用。可以使用两种方法完成此操作:一种用于将代码用于控制台或基于 Windows 的应用程序时;另一种用于将代码用于浏览器宿主应用程序时,如当选择网站作为 Microsoft Visual Studio 项目的类型时。

浏览器宿主应用程序:建立网站上下文

若要通过浏览器宿主应用程序使用 WSS 部署,必须先建立网站上下文或网站集上下文以执行对服务器所做的请求。

必须在代码中获得请求的 HTTP 上下文,建议使用 Microzsoft.SharePoint.SPContext 类及其成员来实现此目的。

 

当前网站集:SPSite oSiteCollection = SPContext.Current.Site;

当前网站:  SPWeb oWebSite = SPContext.Current.Web;

.aspx 文件中包含代码或 .aspx.cs 文件时,可以使用 SPControl 对象的方法,并将 System.Web.UI.Page.Context 属性作为参数

例如:SPWeb oWebSite = SPControl.GetContextWeb(Context);

 

如果 .aspx 页继承自 LayoutsPageBase 而非 System.Web.UI.Page,则可以使用前一个类的 Site Web 属性分别获取对当前网站集或网站的引用。(或者,可以将 Microsoft.SharePoint.WebControls.LayoutsPageBase.Context 属性用作GetContextWeb GetContextSite 方法的参数。)LayoutsPageBase 提供了一些额外的面向 SharePoint 的功能,这些功能主要用于管理用户对不能与 System.Web.UI.Page 一起使用的页面所具有的权限。

例如,若在继承自 LayoutsPageBase .aspx 页中使用以下代码(或隐藏在页面中的代码),则将获取对当前网站的引用。SPWeb oWebSite = this.Web;

 

当前顶级服务器场:

SPFarm myFarm = SPContext.Current.Site.WebApplication.Farm;

当前网站集的首要网站:SPWeb oTopSite = SPContext.Current.Site.RootWeb;

SPContext 类不会限制您获取任何给定类型的当前对象。

例如,可以使用 Microsoft.SharePoint.SPSite.AllWebs 属性来获取对当前网站之外的网站的引用。下面的行使用索引器和 AllWebs 属性返回指定网站的上下文。 

SPWeb oWebSite = SPContext.Current.Site.AllWebs["myOtherSite"];

最后,若要获取对服务器场或当前物理服务器的引用,可以使用静态属性 Microsoft.SharePoint.Administration.SPFarm.Local Microsoft.SharePoint.Administration.SPServer.Local

下面的行是一个示例。

SPFarm oFarm = SPFarm.Local;

您不仅可以在 Web 应用程序和 .aspx 页中使用上面的任何技术,也可以在自定义 Web 服务和 Web 部件中加以使用。

控制台和 Windows 应用程序:使用对象构造函数

SPContext 类在控制台或基于 Windows 的应用程序中没有任何意义。如果要为这些类型的应用程序编写代码且要使用特定的网站集,需使用 SPSite 构造函数来实例化表示该网站集的对象,如下例所示。

using (SPSite oSiteCollection = new SPSite("http://localhost"))

{

      ......

}

在具有对集合的引用后,使用 AllWebs 集合获取对该集合中特定网站的引用。

using (SPWeb oWebSite = mySiteCollection.AllWebs["mySite"])

{

      ......

}

另外,使用 OpenWeb 方法,如下面的行所示。

using (SPWeb oWebSite = mySiteCollection.OpenWeb("mySite"))

{

      ......

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值