SharePoint Tip #9: Utilizar o DisableEventFiring() e o EnableEventFiring()

Num event handler de um lista é frequente haver a necessidade de actualizar um item recorrendo ao método Update() da classe SPListItem. Quando este método é chamado são disparados dois novos eventos, ItemUpdating e ItemUpdated. É fácil perceber que, se o event handler em causa for para um destes eventos, o facto de provocar o disparo dos eventos vai levar a que se entre num ciclo potencialmente infinito (não o é porque o SharePoint acaba por interrompê-lo).

Solução: para evitar esta situação podemos chamar o método DisableEventFiring() no início do event handler, e o método EnableEventFiring() no final do mesmo, fazendo com que não sejam disparados novos eventos mesmo que se chame o método Update() do item.