Использование условной области
Дата последнего изменения: 22 августа 2011 г.
Применимо к: SharePoint Foundation 2010
Доступно на сайте SharePoint Online
Чтобы выполнить код по условию, используйте класс ConditionalScope для задания условий. Если условия выполняются, метод StartScope() этого класса задает, какое действие должно быть выполнено, а его свойство TestResult содержит результат проверки условий.
В следующем примере производится получение и отображение заголовка определенного типа шаблона списка для семейства сайтов, если этот список существует и текущий пользователь имеет разрешения на управление списками.
![]() |
---|
Объектная модель ECMAScript (JavaScript, JScript) не включает эквивалент для класса ConditionalScope в управляемой объектной модели .NET и объектной модели Silverlight. |
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint.Client;
namespace Microsoft.SDK.SharePointServices.Samples
{
class Program
{
static void Main(string[] args)
{
ClientContext clientContext = new ClientContext("http://MyServer/sites/MySiteCollection");
Web oWebsite = clientContext.Web;
List oList = oWebsite.GetCatalog(ListTemplateType.WebPartCatalog);
BasePermissions permissions = new BasePermissions();
permissions.Set(PermissionKind.ManageLists);
ConditionalScope scope = new ConditionalScope(
clientContext,
() => oList.ServerObjectIsNull.Value != true
&& oWebsite.DoesUserHavePermissions(permissions).Value == true);
using (scope.StartScope())
{
clientContext.Load(oList,
list=>list.Title);
}
clientContext.ExecuteQuery();
Console.WriteLine(scope.TestResult.Value);
if (scope.TestResult.Value)
{
Console.WriteLine(oList.Title);
}
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client
Namespace Microsoft.SDK.SharePointServices.Samples
Class Program
Public Shared Sub Main()
Dim clientContext As New ClientContext("http://MyServer/sites/MySiteCollection")
Dim oWebsite As Web = clientContext.Web
Dim oList As List = oWebsite.GetCatalog(ListTemplateType.WebPartCatalog)
Dim permissions As New BasePermissions()
permissions.Set(PermissionKind.ManageLists)
Dim scope As New ConditionalScope(clientContext, _
Function() oList.ServerObjectIsNull.Value <> True _
AndAlso oWebsite.DoesUserHavePermissions(permissions).Value = True)
Using scope.StartScope()
clientContext.Load(oList, Function(list) list.Title)
End Using
clientContext.ExecuteQuery()
Console.WriteLine(scope.TestResult.Value)
If scope.TestResult.Value Then
Console.WriteLine(oList.Title)
End If
End Sub
End Class
End Namespace
См. также
Концепции
Использование области обработки исключений