Partager via


Procédure : Utilisation de l'étendue conditionnelle

Dernière modification : lundi 22 août 2011

S’applique à : SharePoint Foundation 2010

Disponible dans SharePoint Online

Pour une exécution conditionnelle du code, utilisez la classe ConditionalScope pour définir les conditions. Si les conditions sont réunies, la méthode StartScope() de cette classe spécifie l'action à réaliser, et sa propriété TestResult contient le résultat des tests des conditions.

L'exemple suivant extrait et affiche le titre d'un type de modèle de liste spécifique pour une collection de listes, du moment que la liste existe et que l'utilisateur actuel a les autorisations requises pour gérer les listes.

Notes

Le modèle d'objet ECMAScript (JavaScript, JScript) n'inclut pas d'équivalent pour la classe ConditionalScope dans les modèles d'objet .NET managé 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

Voir aussi

Concepts

Procédure : Utiliser l'étendue de gestion des exceptions

Tâches courantes de programmation

Autres ressources

Bibliothèque de classes Client