gpt4 book ai didi

c# - 枚举 Outlook ContactItem 属性

转载 作者:行者123 更新时间:2023-11-30 15:12:24 24 4
gpt4 key购买 nike

我正在尝试使用以下代码枚举 Microsoft.Office.Interop.Outlook.ContactItem 对象(我们称之为 ci)的属性:

        System.Reflection.BindingFlags bf = System.Reflection.BindingFlags.Default;

foreach (System.Reflection.PropertyInfo pi in ci.GetType().GetProperties(bf))
{
Console.WriteLine("Property Info {0}", pi.Name);
}

我实际上已经尝试了几种 BindingFlag 值的组合,但没有返回任何属性。

ContactItem 是这样定义的: 使用 System.Runtime.InteropServices;

namespace Microsoft.Office.Interop.Outlook
{
[Guid("00063021-0000-0000-C000-000000000046")]
[CoClass(typeof(ContactItemClass))]
public interface ContactItem : _ContactItem, ItemEvents_10_Event
{
}
}

这是 _ContactItem 的定义方式(为简单起见,我只保留了 3 个属性):

using System;
using System.Runtime.InteropServices;

namespace Microsoft.Office.Interop.Outlook
{
[TypeLibType(4160)]
[Guid("00063021-0000-0000-C000-000000000046")]
public interface _ContactItem
{
[DispId(14848)]
string Account { get; set; }
[DispId(63511)]
Actions Actions { get; }
[DispId(14913)]
DateTime Anniversary { get; set; }
}
}

有人能帮帮我吗?

提前致谢

鲍勃

最佳答案

您不需要手动定义接口(interface)。只需将对“Microsoft Outlook XX.0 类库”的引用添加到您的 C# 项目,然后使用类似于以下的代码:

using System;
using Outlook = Microsoft.Office.Interop.Outlook;

namespace OutlookTest
{
class Program
{
static void Main(string[] args)
{
Outlook.Application olApplication = new Outlook.Application();

// get nameSpace and logon.
Outlook.NameSpace olNameSpace = olApplication.GetNamespace("mapi");
olNameSpace.Logon("Outlook", "", false, true);

// get the contact items
Outlook.MAPIFolder _olContacts = olNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
Outlook.Items olItems = _olContacts.Items;

foreach (object o in olItems)
{
if (o is Outlook.ContactItem)
{
Outlook.ContactItem contact = (Outlook.ContactItem)o;
foreach (Outlook.ItemProperty property in contact.ItemProperties)
{
Console.WriteLine(property.Name + ": " + property.Value.ToString());
}
}
}
Console.WriteLine("Press any key");
Console.ReadKey();
}
}
}

希望这对您有所帮助。

-- 弗兰克

关于c# - 枚举 Outlook ContactItem 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1323069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com