이 post은 이벤트 수신기 외부에서 업데이트를 수행 할 때 이벤트 수신기가 SPListItem을 실행하는 것을 방지하는 문제에 대한 훌륭한 해결책으로 나왔습니다. 코드는 설명 된대로 100 % 작동하며 솔루션에 깊은 인상을 받았지만 문제는 완전히 이해하지 못했기 때문입니다.SharePoint 목록 항목 이벤트 수신기 도움말을 방지하는 확장 메서드
단순하게 유지하려면 SystemUpdate 메서드를 무시하십시오. 따라서 SPListItem.Update 오버로드 및 코드에 선언 된 개인 클래스 만 처리합니다.
내가 얻지 못하는 비트는 클래스 rh가 SPListItem 항목과 "연결"되거나 "연결"되는 방식입니다. 방법을 재현하는
public static void Update(this SPListItem item, bool doNotFireEvents)
{
SPItemEventReceiverHandling rh = new SPItemEventReceiverHandling();
if (doNotFireEvents)
{
try
{
rh.DisableEventFiring();
item.Update();
}
finally
{
rh.EnableEventFiring();
}
}
else
{
item.Update();
}
}
나는 우리가 RH, SPItemEventReceiverHandling의 인스턴스를 인스턴스화하고 doNotFireEvents에 해당하는 경우 우리가 EnableEventFiring 전화를 완료 할 때 우리는 다음 RH와에 DisableEventFiring()를 호출 볼 수 있습니다 ... 다시 클릭 저장합니다() rh에. 내가 볼 수없는 링크는 "rh"와 "item"사이에 있습니다. SharePoint는 업데이트를 수행 할 때 rh를 이벤트 수신기로 사용하는 것을 "알"습니까?
내가 분명히 설명했으면 좋겠다. 나에게 알려주지 않으면 나는 더 명확히하려고 노력할 것이다.
흠. 설명서가 명확하지 않습니다. 그래서 라고 할 때 우리는 어떤 범위의 이야기를하고 있습니까? 해당 사용자에 대한 모든 이벤트입니까? 실? 웹 응용 프로그램? 아니면 모두가 넓은 농장일까요? 걱정거리는 모든 사람이 팜 전체에 적용되는 경우이며, 다른 사람이 이벤트 수신자가 짧은 시간 내에 이벤트를 사용할 수 없게하는 업데이트를 수행하면 어떻게 될까요? – Mark