Share via


条件範囲を使用する

最終更新日: 2011年8月22日

適用対象: SharePoint Foundation 2010

SharePoint Online で使用可能

条件に応じてコードを実行するには、ConditionalScope クラスを使用して条件を設定します。その条件に一致すると、このクラスの StartScope() メソッドで指定するアクションが実行され、TestResult プロパティに条件検査の結果が含まれます。

以下の例では、特定のリスト テンプレート タイプについて、リストが存在する場合およびリストを管理する権限が現在のユーザーにある場合に限り、サイト コレクションの当該リストのタイトルを取得および表示します。

注意

ECMAScript (JavaScript、JScript) オブジェクト モデルには, .NET マネージ オブジェクト モデルおよび Silverlight オブジェクト モデルの ConditionalScope クラスに相当するクラスはありません。

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

関連項目

概念

[方法] 例外処理範囲を使用する

一般的なプログラミング作業

その他の技術情報

クライアント クラス ライブラリ