我希望获得一些帮助,即使用以下代码片段确定加载到对象中的 MailItem 的类型。您将看到我从事件浏览器选择中加载对象并测试它是否是邮件项目。我想避免选择的是诸如已读收据、 session 致谢等对象,并测试我想要获取其类型的每种类型的对象 - 我尝试在下面的 else 语句中测试它 - 但我所有的在调试窗口中得到的是“Not a Mail Item: I am a :System.__ComObject”
。
// set the mail item
object selectedItem = Globals.ThisAddIn.Application.ActiveExplorer().Selection[1];
// This example uses only MailItem.
if (selectedItem is Outlook.MailItem)
{
// Cast selectedItem to MailItem.
Outlook.MailItem mailItem = selectedItem as Outlook.MailItem;
// Do something with the MailItem
}
else
{
// what sort of item are we?
Debug.WriteLine("I am not a Mail Item: I am a :" +
selectedItem.GetType().ToString());
}
最佳答案
应该执行以下操作
if(item is MailItem)
{
}
但是,我必须检查“null”对象,并且由于某些奇怪的原因我得到了一个 null 对象。因此,我不得不使用以下方法来解决问题
if (item != null && item is MailItem)
{
}
关于C# 检查 Outlook 邮件项目是否是真正的 MailItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49474565/