Share via


Procedimiento para usar el ámbito condicional

Última modificación: lunes, 22 de agosto de 2011

Hace referencia a: SharePoint Foundation 2010

Disponible en SharePoint Online

Para ejecutar código condicionalmente, use la clase ConditionalScope para establecer las condiciones. Si se cumplen las condiciones, el método StartScope() de esta clase especifica qué acción se debe llevar a cabo y su propiedad TestResult contiene los resultados de las pruebas de las condiciones.

En el siguiente ejemplo se recupera y se muestra el título de un tipo de plantilla de lista específico para una colección de sitios, siempre y cuando la lista exista y el usuario actual disponga de permisos para administrar listas.

Nota

El modelo de objetos de ECMAScript (JavaScript, JScript) no incluye un equivalente para la clase ConditionalScope de los modelos de objetos administrado por .NET y de 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

Vea también

Conceptos

Procedimiento para usar el ámbito de manipulación de excepciones

Tareas comunes de programación

Otros recursos

Biblioteca de clases de cliente