Класс SPContext

Представляет контекст HTTP-запроса в Microsoft SharePoint Foundation.

Иерархия наследования

System.Object
  Microsoft.SharePoint.SPContext

Пространство имен:  Microsoft.SharePoint
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
Public NotInheritable Class SPContext
'Применение
Dim instance As SPContext
public sealed class SPContext

Замечания

Класс SPContext используется для возвращения контекстные сведения о таких объектов в виде текущего веб-приложения, семейства веб-сайтов, сайт, список или элемент списка.

Примеры

Следующие примеры иллюстрируют способы использования свойств класса SPContext для возврата текущего списка, сайта и семейства веб-сайтов.

Dim currentList As SPList = SPContext.Current.List
Dim currentSite As SPWeb = SPContext.Current.Web
Dim currentSiteCollection As SPSite = SPContext.Current.Site
Dim currentWebApplication As SPWebApplication = SPContext.Current.Site.WebApplication

[C#]

SPList oListCur = SPContext.Current.List;
SPWeb oWeb = SPContext.Current.Web;
SPSite oSite = SPContext.Current.Site;
SPWebApplication oWebApplicationCur = SPContext.Current.Site.WebApplication;

Приводится значение свойства Item как объект SPListItem для возврата текущего элемента списка, как показано ниже:

SPListItem item = (SPListItem)SPContext.Current.Item;

В следующих примерах используются свойства SPContext открыть веб-узел в текущем семействе узлов и для возврата текущего пользователя.

Dim site As SPWeb = SPContext.Current.Site.OpenWeb(guid)
Dim user As SPUser = SPContext.Current.Web.CurrentUser

[C#]

using(SPWeb oWeb = SPContext.Current.Site.OpenWeb(guidWebsite))
{
    SPUser oUser = SPContext.Current.Web.CurrentUser;
}

В следующем примере класс SPContext используется для выполнения запроса на текущем сайте в случаях, когда идентификаторы элементов являются больше 100. Результаты записываются в файл на сервере. В этом примере требуется директивы using (Imports в Visual Basic) для пространства имен System.Data и Microsoft.SharePoint .

Dim siteQuery As New SPSiteDataQuery()
siteQuery.Query = "<Where><Gt><FieldRef Name=""ID"" />" + "<Value Type = ""Number"">100</Value></Gt></Where>"
siteQuery.ViewFields = "<FieldRef Name=""Title""/>"
Dim queryResults As DataTable = SPContext.Current.Web.GetSiteData(siteQuery)
queryResults.TableName = "queryTable"
queryResults.WriteXml("C:\queryTable.xml")

[C#]

SPSiteDataQuery oSiteQuery = new SPSiteDataQuery();
oSiteQuery.Query = "<Where><Gt><FieldRef Name=\"ID\" />" +
    "<Value Type = \"Number\">100</Value></Gt></Where>";
oSiteQuery.ViewFields = "<FieldRef Name=\"Title\"/>";
DataTable oQueryResults = SPContext.Current.Web.GetSiteData(oSiteQuery);
oQueryResults.TableName = "queryTable";
oQueryResults.WriteXml("C:\\queryTable.xml");

Предыдущий пример создает объект SPSiteDataQuery и присваивает его свойству Query строку в Схемы Collaborative Application Markup Language (CAML) . Эта строка определяет запрос (см. Схема Query). Метод GetSiteData() возвращает объект System.Data.DataTable , содержимое которого записываются в XML-файл.

Потокобезопасность

Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.

См. также

Справочные материалы

Элементы SPContext

Пространство имен Microsoft.SharePoint