我正在使用Outlook com界面自动创建电子邮件。我正在尝试处理MailItem.Close
事件,但问题是MailItem还有一个MailItem.Close()
方法。我希望编译器会推断出我正在引用该事件,因为我试图将一个委托附加到它,但事实并非如此。
private void editButton_Click(object sender, RoutedEventArgs e)
{
outlook.MailItem editItem;
...
editItem.Close += delegate { editItem_onClose(editItem); };
...
}
实际错误是:
Error 4 Cannot assign to 'Close' because it is a 'method group'
并且警告是:
Warning 3 Ambiguity between method 'Microsoft.Office.Interop.Outlook._MailItem.Close(Microsoft.Office.Interop.Outlook.OlInspectorClose)' and non-method 'Microsoft.Office.Interop.Outlook.ItemEvents_10_Event.Close'. Using method group.
编辑:
我的Microsoft.Office.Interop.Outlook
NameSpace没有ItemEvents_10_Event
界面。我有outlook.ItemEvents_10_SinkHelper
和outlook.ItemEvents_10
我试图像outlook.ItemEvents_10
那样投降:
var events = (outlook.ItemEvents_10)editItem;
events.Close += delegate { editItem_AfterWrite(editItem, editRow); };
但我仍然得到" events.Close是一个方法组"错误。
答案 0 :(得分:2)
您需要将邮件项目对象强制转换为提供事件或方法的正确接口或类。 ItemEvents_10_Event接口提供Close事件,MailItem类提供Close方法。