我的方法将Outlook.MailItem
作为参数。在检查MailItem对象并阅读文档时,我注意到它有一个名为Sender
的属性,它返回AddressEntry
。
当我想使用这个属性时,我收到以下错误:Cannot resolve symbol 'Sender'
,并且Sender以红色突出显示。尝试构建并忽略突出显示结果:
' Microsoft.Office.Interop.Outlook.MailItem'不包含发件人'的定义没有扩展方法' Sender'接受类型' Microsoft.Office.Interop.Outlook.MailItem'的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)
很奇怪,文档说该属性存在,当我调试时,我甚至可以检查该值。 (我必须在这个旧项目中使用VS2010,因此调试检查对于所有System.__ComObject
都不是很好,但我可以检查Sender
的值,因此它存在。)
但是,当我将MailItem
转换为dynamic
时,我可以按如下方式访问发件人,而不会出现任何问题:
var sender = (AddressEntry)((dynamic)mailItem).Sender;
我在这里做错了什么?我现在因为缺乏更好的解释而将其归咎于VS2010。
答案 0 :(得分:0)
好的,首先感谢所有花时间思考的人。
原来MailItem
是一个界面(所以那个'为什么你在你的界面名称前输入一个I
,比如IMailItem
),我的解决方案中有Microsoft.Office.Interop.Outlook;
的旧版本。在我将此版本(以及它所依赖的Office
参考资料)更新为较新版本后,我可以访问MailItem.Sender
。
所以它是在新版本的文档中...我的坏!