我的方法将 Outlook.MailItem 作为参数。在检查MailItem对象并阅读文档后,我注意到它具有一个名为 Sender 的属性,该属性返回 AddressEntry
当我想使用此属性时,出现以下错误:Cannot resolve symbol 'Sender',发件人以红色突出显示。尝试构建并忽略以下突出显示的结果:



很奇怪,文档说该属性存在,当我调试时,我什至可以检查该值。 (我必须在这个旧项目上使用VS2010,因此所有System.__ComObject的调试检查都不是一件好事,但是我可以检查Sender的值,所以它存在。)

但是,当我将MailItem转换为dynamic时,我可以按以下方式访问发件人,而不会出现任何问题:

var sender = (AddressEntry)((dynamic)mailItem).Sender;

我在这里做错了什么?我目前将其归咎于VS2010,因为缺少更好的解释。

最佳答案

好的,首先感谢所有花时间思考的人。

原来MailItem是一个接口(interface)(所以这就是为什么要在接口(interface)名称前加上I,例如IMailItem的原因),并且我的解决方案中有较旧的Microsoft.Office.Interop.Outlook;。一旦将此(以及它所依赖的Office引用)更新为新版本,就可以访问MailItem.Sender

原来是在新版本的文档中……我的天哪!

10-07 20:20