【发布时间】:2016-12-17 12:48:07
【问题描述】:
我有这样的代码
var mi = MyAddIn.Application.ActiveInspector().CurrentItem as MailItem;
if (mi != null)
{
mi.Attachments.Add(myFilePath);
}
此代码的问题在于它假定将打开新邮件对话框(ActiveInspectorCurrentItem 是MailItem)。但是,我的情况并非总是如此。
如果不是这样,那么上面获取mi 的代码将抛出NullReferenceException。
如何检查我是否打开了新的邮件对话框,如果是,则使用上面的行来获取它;否则创建新的 MailItem(新邮件对话框)?
我正在尝试做这样的事情:
var mi;
if (MyAddIn.Application.ActiveInspector().CurrentItem != null)
{
// get existing
mi = MyAddIn.Application.ActiveInspector().CurrentItem as MailItem;
}
else
{
// otherwise, create new one
mi = MyAddIn.Application.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
}
// now use it to attach file
if (mi != null)
{
mi.Attachments.Add(myFilePath);
}
【问题讨论】: