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

时间:2014-04-08 09:31:20

标签: c# com outlook

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

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

但是,这会失败,因为它无法在comobject上找到该属性。

1 个答案:

答案 0 :(得分:0)

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