NetOffice - 访问Outlook MailItem

时间:2015-11-01 11:08:40

标签: c# vsto office-interop outlook-addin netoffice

我正在使用NetOffice Wrapper并尝试访问Outlook Mailitem的Word编辑器。

以前我在使用

MailItem mItem = (MailItem)inspector.CurrentItem;
Microsoft.Office.Interop.Word.Document docx = mItem.GetInspector.WordEditor;
Microsoft.Office.Interop.Word.Selection selected = docx.Windows[1].Selection;

哪个有效。现在有了NetOffice,我正在尝试

Word.Document docx = mItem.GetInspector.WordEditor;

告诉我对象无法转换为Word.Document。使用

Word.Document docx = mItem.GetInspector.WordEditor as Word.Document;

告诉NetOffice.WordApi.Document无法嵌入。

有谁知道,我如何使用NetOffice访问WordEditor。谢谢你的帮助。

的Stefan

2 个答案:

答案 0 :(得分:0)

如果有人像我一样再次遇到这种情况,他的问题的答案是在Visual Studio中选择[NetOffice] WordApi引用,然后将“嵌入互操作类型”属性更改为False。

Image

答案 1 :(得分:-1)

的Stefan,

为什么需要使用NetOffice程序集。我建议使用清晰的代码并立即释放底层的COM对象。完成使用后,使用System.Runtime.InteropServices.Marshal.ReleaseComObject释放Outlook对象。如果您的加载项尝试枚举存储在Microsoft Exchange Server上的集合中的256个以上的Outlook项目,这一点尤为重要。

 mItem.GetInspector.WordEditor

注意,Inspector类的GetInspector方法返回一个Inspector类的实例,该实例也应该被释放。不要在单行代码中使用多个点。或者底层的COM对象将不会发布。