IAlertNotifyHandler 的 OnNotification() 返回值有啥作用?
Posted
技术标签:
【中文标题】IAlertNotifyHandler 的 OnNotification() 返回值有啥作用?【英文标题】:What does IAlertNotifyHandler's OnNotification() return value do?IAlertNotifyHandler 的 OnNotification() 返回值有什么作用? 【发布时间】:2009-03-31 23:29:52 【问题描述】:到目前为止,我已经使用IAlertNotifyHandler 接口为 SharePoint 2007 创建了许多自定义警报处理程序。使用此接口,您必须实现一个名为OnNotification() 的方法,该方法具有以下签名:
bool OnNotification (SPAlertHandlerParams ahp);
如您所见,此方法应返回一个布尔值。 MSDN 官方文档对此返回值的解释如下:
true 如果是 Windows SharePoint Services 将通知标记为已处理; 否则错误
起初我认为这意味着如果您返回 true,您会向 SharePoint 发出信号,表明您的处理程序已完成所有警报处理,并且 SharePoint 不应执行其默认行为。但是,在实践中,处理警报的方式似乎没有任何区别。你可以返回true或false,没有任何区别。
然后我用Reflector对源码进行了反汇编,可惜处理OnNotification返回值的代码不是托管的,而是原生的。
那么谁知道那个返回值是什么意思呢?
【问题讨论】:
【参考方案1】:我相信这仅在摘要警报(每日或每周摘要)的情况下被考虑,而不是在即时警报的情况下考虑。如果在处理摘要警报时返回 false,则相同的项目将在下一个摘要警报中发送给用户。
【讨论】:
我不太明白。你能详细说明一下吗? 假设您有一个每日警报通知您一个新项目:“项目 1”。如果您从处理程序返回 false,则下次触发每日警报时,它的正文中仍将包含“项目 1”,因此用户将收到同一项目的另一个警报。我对此不是 100% 肯定,但我在最近的一个项目中确实观察到了这种行为。从 OnNotification 方法返回 true 后,我停止接收重复。以上是关于IAlertNotifyHandler 的 OnNotification() 返回值有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章