Класс AudienceRuleComponent
Представляет одно правило в аудитории.
Иерархия наследования
System.Object
Microsoft.Office.Server.Audience.AudienceRuleComponent
Пространство имен: Microsoft.Office.Server.Audience
Сборка: Microsoft.Office.Server.UserProfiles (в Microsoft.Office.Server.UserProfiles.dll)
Синтаксис
'Декларация
<SerializableAttribute> _
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public Class AudienceRuleComponent
'Применение
Dim instance As AudienceRuleComponent
[SerializableAttribute]
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public class AudienceRuleComponent
Замечания
Аудитория может состоять из одного или нескольких компонентов правила. Каждое правило подключена оператором, например AND или OR. Каждый компонент правила включает три части: операнд, оператор и значение.
Класс AudienceRuleComponent содержит строку открытого поля для задания содержимого левой, операторов и значений справа содержимого при создании нового правила аудитории для аудитории. Все правила аудитории правило, которое создается для свойства типа DateTime будет иметь значение, указанное в формате инвариантного языка и региональных параметров. Для всех других типов свойств, таких как int, long, doubleи floatв формат веб-узла используется для указания значения правил.
Примеры
Следующий пример кода добавляет сложные правила для аудитории с именем «Подключение Иван и Сергей». В этом примере используется AND, ORи ( and ) операторы для объединения нескольких правил и правила для группы.
Примечание
При создании аудитории сложные правила, нельзя просматривать или изменять ее свойства или удалить его с помощью пользовательского интерфейса (UI). Тем не менее можно использовать пользовательский Интерфейс для просмотра его членов.
Замените servername и другие строки на фактические значения перед выполнением кода. Также добавьте в проект Microsoft Visual Studio ссылки на следующие компоненты:
Microsoft.Office.Server
Microsoft.SharePoint
System.Web
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint.Administration;
using Microsoft.Office.Server.Audience;
using Microsoft.SharePoint;
using Microsoft.Office.Server;
using System.Web;
using System.Collections;
namespace AudienceConsoleApp
{
class Program
{
static void Main(string[] args)
{
try
{
using (SPSite site = new SPSite("https://servername"))
{
ServerContext context = ServerContext.GetContext(site);
AudienceManager AudMgr = new AudienceManager(context);
AudienceCollection ac = AudMgr.Audiences;
Audience a = null;
bool ruleListNotEmpty = false;
try
{
a = AudMgr.Audiences["John and Joe Connection"];
}
catch (AudienceArgumentException ex)
{
// Your exception handling code here.
}
ArrayList aRules = a.AudienceRules;
if (aRules == null)
{
aRules = new ArrayList();
}
else
{
ruleListNotEmpty = true;
}
try
{
// If the rule is not empty, start with a group operator 'AND' to append.
if (ruleListNotEmpty)
{
aRules.Add(new AudienceRuleComponent(null, "AND", null));
}
AudienceRuleComponent r0 = new AudienceRuleComponent(null, "(", null);
aRules.Add(r0);
AudienceRuleComponent r1 = new AudienceRuleComponent("FirstName", "Contains", "John");
aRules.Add(r1);
AudienceRuleComponent r2 = new AudienceRuleComponent(null, "AND", null);
aRules.Add(r2);
AudienceRuleComponent r3 = new AudienceRuleComponent("WorkEmail", "Contains", "example.com");
aRules.Add(r3);
AudienceRuleComponent r4 = new AudienceRuleComponent(null, ")", null);
aRules.Add(r4);
AudienceRuleComponent r5 = new AudienceRuleComponent(null, "OR", null);
aRules.Add(r5);
AudienceRuleComponent r6 = new AudienceRuleComponent(null, "(", null);
aRules.Add(r6);
AudienceRuleComponent r7 = new AudienceRuleComponent("FirstName", "Contains", "Joe");
aRules.Add(r7);
AudienceRuleComponent r8 = new AudienceRuleComponent(null, "AND", null);
aRules.Add(r8);
AudienceRuleComponent r9 = new AudienceRuleComponent("WorkEmail", "Contains", "someexample.com");
aRules.Add(r9);
AudienceRuleComponent r10 = new AudienceRuleComponent(null, ")", null);
aRules.Add(r10);
a.AudienceRules = aRules;
a.Commit();
}
catch (AudienceException e)
{
// Your exception handling code here.
}
}
}
catch (Exception exception)
{
Console.WriteLine(exception.ToString());
Console.Read();
}
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SharePoint.Administration
Imports Microsoft.Office.Server.Audience
Imports Microsoft.SharePoint
Imports Microsoft.Office.Server
Imports System.Web
Imports System.Collections
Namespace AudienceConsoleApp
Friend Class Program
Shared Sub Main(ByVal args() As String)
Try
Using site As New SPSite("https://servername")
Dim context As ServerContext = ServerContext.GetContext(site)
Dim AudMgr As New AudienceManager(context)
Dim ac As AudienceCollection = AudMgr.Audiences
Dim a As Audience = Nothing
Dim ruleListNotEmpty As Boolean = False
Try
a = AudMgr.Audiences("John and Joe Connection")
Catch ex As AudienceArgumentException
' Your exception handling code here.
End Try
Dim aRules As ArrayList = a.AudienceRules
If aRules Is Nothing Then
aRules = New ArrayList()
Else
ruleListNotEmpty = True
End If
Try
' If the rule is not empty, start with a group operator 'AND' to append.
If ruleListNotEmpty Then
aRules.Add(New AudienceRuleComponent(Nothing, "AND", Nothing))
End If
Dim r0 As New AudienceRuleComponent(Nothing, "(", Nothing)
aRules.Add(r0)
Dim r1 As New AudienceRuleComponent("FirstName", "Contains", "John")
aRules.Add(r1)
Dim r2 As New AudienceRuleComponent(Nothing, "AND", Nothing)
aRules.Add(r2)
Dim r3 As New AudienceRuleComponent("WorkEmail", "Contains", "example.com")
aRules.Add(r3)
Dim r4 As New AudienceRuleComponent(Nothing, ")", Nothing)
aRules.Add(r4)
Dim r5 As New AudienceRuleComponent(Nothing, "OR", Nothing)
aRules.Add(r5)
Dim r6 As New AudienceRuleComponent(Nothing, "(", Nothing)
aRules.Add(r6)
Dim r7 As New AudienceRuleComponent("FirstName", "Contains", "Joe")
aRules.Add(r7)
Dim r8 As New AudienceRuleComponent(Nothing, "AND", Nothing)
aRules.Add(r8)
Dim r9 As New AudienceRuleComponent("WorkEmail", "Contains", "someexample.com")
aRules.Add(r9)
Dim r10 As New AudienceRuleComponent(Nothing, ")", Nothing)
aRules.Add(r10)
a.AudienceRules = aRules
a.Commit()
Catch e As AudienceException
' Your exception handling code here.
End Try
End Using
Catch exception As Exception
Console.WriteLine(exception.ToString())
Console.Read()
End Try
End Sub
End Class
End Namespace
Потокобезопасность
Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.