如何检查COM对象的属性X在C#中是否具有值Y

本文关键字:是否 属性 何检查 检查 对象 COM | 更新日期: 2023-09-27 17:57:33

我目前正试图从Outlook检索的Items集合中只获取联系人。问题是,我对ContactItem的转换有时会中断,因为列表中有非接触式项目(如通讯组列表)。因为这些是COM对象,所以我需要检查属性MessageClass是否等于IPM.Contact。我不熟悉COM对象,所以我不知道如何做到这一点。我尝试过使用以下内容:

if(comObject.GetType().GetProperty(MessageClass).GetValue(comObject).Equals("IPM.Contact"))
{
    contactitems.add((ContactItem)comObject)
}

但是,这会失败,因为它找不到共聚对象的属性。

如何检查COM对象的属性X在C#中是否具有值Y

我查看了MSDN,他们建议http://msdn.microsoft.com/en-us/library/ms268994.aspx使用object is ContactItem检查它是否是ContactItem。我试过这个,它很管用。