Поделиться через


Назначение категорий элементу

В этом примере показано, как назначить категории элементу с помощью его свойства Categories.

Пример

Примечание.

Приведенный ниже пример кода взят из книги Программирование приложений для Microsoft Office Outlook 2007.

Чтобы назначить категории элементу, используйте специальное свойство Categories элемента. В этом примере кода используется вспомогательный класс OutlookItem, определенный в статье Создание вспомогательного класса для доступа к общим элементам Outlook, с помощью которого можно удобно вызвать свойство OutlookItem.Categories без необходимости сначала выполнять приведение элемента. Свойство Categories получает или задает категории, представленные в виде строки с разделителями-запятыми, которая может содержать не более 255 знаков. Запятые и пробелы используются для разделения значений категории. Назначение категории, не входящей в коллекцию Categories объекта NameSpace, приведет к тому, что категория не будет отображать цвет.

В следующем примере кода процедура AssignCategories создает ограничение для элементов с символами "ISV" в теме, сначала с помощью запроса DASL отфильтровывая в папке "Входящие" такие элементы. Затем AssignCategories проходит по отфильтрованным элементам с помощью класса OutlookItem и в том случае, если строка, возвращенная item.Categories, не является пустой ссылкой или не была назначена категории ISV, назначает категорию ISV этому элементу.

using Outlook = Microsoft.Office.Interop.Outlook;
private void AssignCategories()
{
    string filter = "@SQL=" + "\"" + "urn:schemas:httpmail:subject"
        + "\"" + " ci_phrasematch 'ISV'";
    Outlook.Items items =
        Application.Session.GetDefaultFolder(
        Outlook.OlDefaultFolders.olFolderInbox).Items.Restrict(filter);
    for (int i = 1; i <= items.Count; i++)
    {
        OutlookItem item = new OutlookItem(items[i]);
        string existingCategories = item.Categories;
        if (String.IsNullOrEmpty(existingCategories))
        {
            item.Categories = "ISV";
        }
        else
        {
            if (item.Categories.Contains("ISV") == false)
            {
                item.Categories = existingCategories + ", ISV";
            }
        }
        item.Save();
    }
}

См. также