简体   繁体   English

使用 Outlook 遍历联系人属性

[英]Iterate through a contacts properties using outlook

I want to iterate through a contacts properties and add those that contain the word "Number" to a list with the value, i tries using reflection but it doesn't work.我想遍历联系人属性并将包含单词“Number”的那些添加到具有值的列表中,我尝试使用反射但它不起作用。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using Microsoft.Office.Interop.Outlook;

namespace DuplicateNumbers
{
    public class ContactService
    {
        public ContactItem Contact { get; private set; }

        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);
            }
        }
    }
}

Try using MAPI CDO.尝试使用 MAPI CDO。

Here's a microsoft site that might get you started: How to use CDO to read MAPI Addresses这是一个可以帮助您入门的微软网站: How to use CDO to read MAPI Addresses

Here's some MAPI Blogs to help as well:这里还有一些 MAPI 博客可以提供帮助:

Of cause it doesn't work - it's a COM object.因为它不起作用 - 它是一个 COM 对象。 You should use the properties from CDO space.您应该使用 CDO 空间中的属性。

This seems to be able to access the Outlook.ContactItem properties.这似乎能够访问 Outlook.ContactItem 属性。 Enumerating Outlook ContactItem properties 枚举 Outlook ContactItem 属性

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM