我的代码很简单:
using Outlook = Microsoft.Office.Interop.Outlook;
private Outlook.ContactItem contact;
private void OutlookButton_Click(object sender, RoutedEventArgs e)
{
try
{
contact = new Outlook.ContactItem((Outlook.ContactItem)((Button)sender).Tag);
contact.Display();
Display()
行引发了与IDispatch
相关的异常:
System.Reflection.TargetInvocationException:COM目标没有 实现IDispatch。
有一个Outlook联系人对象绑定到按钮标记,并且想法是当单击该按钮时它将打开以显示它们。
Outlook(应用程序)未运行。以上工作第一次正常,但如果我第二次点击同一个按钮,则会引发上述异常。
如果尝试使用NetOffice
,那会给我相同的结果。
答案 0 :(得分:0)
您无法使用类ctor创建Outlook项目。相反,您需要使用Application类的CreateItem或CreateItemFromTemplate方法。
还可以使用Items类的添加方法来创建新的Outlook项目。
很可能你需要更正代码:
contact = (Outlook.ContactItem)((Button)sender).Tag);
contact.Display();
无论如何,我建议将条目ID值存储在标签中。您可以在任何方便的时间使用Namespace类的GetItemFromID方法。