Не уверен, что я точно понимаю, чего вы хотите.
Попробуйте добавить поле, скрытое, если хотите, в список или тип контента для использования в качестве флага. Когда вы вводите свой код события, убедитесь, что вы сначала проверили флаг, и если он не установлен, установите его и сделайте свое дело. После того, как вы сделали свои вещи, снимите флажок.
Вот некоторый код для иллюстрации. Обратите внимание, что я использовал столбец с именем «обновление». Вы также можете использовать свойства SPListItem, если не хотите добавлять столбец.
О, и не забудьте вызвать DisableEventFiring перед SPListItem.Update и затем EnableEventFiring () впоследствии. Чтобы получить это, у вас на руках будет очень неприятный бесконечный цикл.
.b
public override void ItemAdding(SPItemEventProperties properties)
{
if (properties.ListItem["updating"].ToString() == "updating")
{
properties.Cancel = true;
properties.ErrorMessage = "Item is currently updating, please try again later";
}
else
{
properties.ListItem["updating"] = "updating";
this.DisableEventFiring();
properties.ListItem.Update();
this.EnableEventFiring();
// do your stuff
properties.ListItem["updating"] = "";
this.DisableEventFiring();
properties.ListItem.Update();
this.EnableEventFiring();
}
}