我为每个AppointmentItem
的发送事件添加了一个事件处理程序。这个事件处理程序只是做一些日志记录的事情。我通过 Outlook 2003 创建会议,然后两次更新会议。最后我检查了日志。
this.Application.Inspectors.NewInspector += new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(_inspectors_NewInspector);
private void _inspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector inspector)
{
if(inspector.CurrentItem is Outlook.AppointmentItem)
{
_appointmentEvent = inspector.CurrentItem as Outlook.ItemEvents_10_Event;
_appointmentEvent.Send += new Microsoft.Office.Interop.Outlook.ItemEvents_10_SendEventHandler(_appointmentEvent_Send);
}
}
private void _appointmentEvent_Send(ref bool Cancel)
{
Log.WriteLog("InspectorWrapper: _appointmentEvent_Send Enter");
Log.WriteLog("InspectorWrapper: _appointmentEvent_Send Exit");
}
我检查日志。我发现发送事件处理程序会被调用很多次。
2012-05-16 10:07:21:066:InspectorWrapper:_appointmentEvent_Send 进入
2012-05-16 10:07:21:067:InspectorWrapper:_appointmentEvent_Send 退出
...
2012-05-16 10:07:27:281: InspectorWrapper:_appointmentEvent_Send 进入
2012-05-16 10:07:27:283:InspectorWrapper:_appointmentEvent_Send 退出
2012-05-16 10:07:27:283:InspectorWrapper:_appointmentEvent_Send 进入
2012-05-16 10:07:27:284 :InspectorWrapper:_appointmentEvent_Send Exit
...
2012-05-16 10:07:32:607:InspectorWrapper:_appointmentEvent_Send Enter
2012-05-16 10:07:32:608:InspectorWrapper:_appointmentEvent_Send 退出
2012-05-16 10:07 :32:609: InspectorWrapper: _appointmentEvent_Send Enter
2012-05-16 10:07:32:609:InspectorWrapper:_appointmentEvent_Send 退出
2012-05-16 10:07:32:610:InspectorWrapper:_appointmentEvent_Send 进入
2012-05-16 10:07:32:610:InspectorWrapper:_appointmentEvent_Send出口
为什么?