Перебирать свойства контактов с помощью outlook - PullRequest
0 голосов
/ 15 октября 2008

Я хочу перебрать свойства контактов и добавить те, которые содержат слово «Число», в список со значением, я пытаюсь использовать отражение, но это не работает.

Пример кода ниже

с использованием системы; использование System.Collections; using System.Collections.Generic; using System.Reflection; использование Microsoft.Office.Interop.Outlook;

namespace DuplicateNumbers { общедоступный класс ContactService { public ContactItem Contact {get; приватный набор; }

    private IDictionary<string,string> phoneNumbers = new Dictionary<string, string>();

    public ContactService(ContactItem contact)
    {
        Contact = contact;
    }

    public IDictionary<string,string> PhoneNumbers
    {
        get
        {
            if(phoneNumbers.Count == 0)
            {
                PopulatePhoneNumbers();
            }
            return phoneNumbers;
        }
    }

    private void PopulatePhoneNumbers()
    {
        _ContactItem ci = Contact as _ContactItem;
        MemberInfo[] members = ci.GetType().FindMembers(MemberTypes.All, BindingFlags.Instance, (m,criteria) => true, null);
        foreach (var info in members)
        {
            if(info.Name.Contains("Number"))
            {
                phoneNumbers.Add(info.Name,info.Value);
            }
            Console.WriteLine(info);
        }
    }
}

}

Ответы [ 2 ]

1 голос
/ 24 октября 2008

Попробуйте использовать MAPI CDO.

Вот сайт Microsoft, с которого можно начать: Как использовать CDO для чтения адресов MAPI

Вот несколько полезных блогов MAPI:

0 голосов
/ 16 октября 2008

Конечно, это не работает - это COM-объект. Вы должны использовать свойства из пространства CDO.

...