Класс 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) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.