根据来自sitefinity的文件,我有这些代码:
protected void Application_Start(object sender, EventArgs e)
{
Bootstrapper.Initialized += new EventHandler<ExecutedEventArgs>(Bootstrapper_Initialized);
}
public void Bootstrapper_Initialized(object sender, ExecutedEventArgs args)
{
if (args.CommandName == "Bootstrapped")
{
EventHub.Subscribe<ICommentEvent>(evt => CommentsEvent.CommentEventHandler(evt));
}
}
处理程序:
public static void CommentEventHandler(ICommentEvent evt)
{
// My code here
}
问题是这个处理程序在评论事件发生时总是运行两次(发表评论或批准评论)。
你能否告诉我为什么会发生这种情况以及避免这种情况的任何可能方法? (我不相信静态布尔是个好主意。)
由于
答案 0 :(得分:2)
ICommentEvent是一个基本接口,由多个事件实现,如ICommentCreatingEvent,ICommentCreatedEvent,ICommentUpdatingEvent,ICommentUpdatedEvent和其他一些事件。
在你的情况下,由于触发了ICommentCreatingEvent和ICommentCreatedEvent,它会被触发两次。
您只能订阅其中一个,它应该只启动一次。