2010-08-10 1 views
1

문서 라이브러리 목록의 ItemAdded 및 ItemUpdated 이벤트를 처리하기위한 SPItemEventReceiver가있는 SharePoint 2010 통합에서 작업하고 있습니다. 이벤트 수신기에 대한 초기화를 처리하는 생성자를 추가했습니다. 테스트/디버깅에서 필자는 필자의 기능 (이 이벤트 수신기를 포함하는 기능)이 활성화 될 때 이벤트 수신기가 12 번 초기화된다는 것을 알아 챘습니다. 나는 왜 생성자가 12 번 호출되었는지 알아 내고 특징이 비활성화 될 때까지 12 개의 모든 인스턴스가 살아 있는지 궁금해하고있다. 그렇지 않으면 일부가 쓰레기로 길을 따라 수집 될 수 있으므로 조심해야한다. 누구나 12 명이 있고 왜 일생일까요?SharePoint 2010 - SPItemEventReceiver가 12 번 초기화되었습니다.

답변

1

마법 번호 12와 관련이 없습니다. 그것은 단지 당신을 위해 확장입니다. 그럼에도 불구하고 SharePoint 이벤트 수신기는 싱글 톤 의미론에 의존해서는 안됩니다. 중요한 것은 각각의 고유 한 이벤트에, 당신은 당신이 실수로 12 개 파일을 떨어 뜨릴 동일한 목록 ;-)

+0

그래서 "wsp"패키징에서 배포를 처리하는 대신 프로그래밍 방식으로 활성화 된 내 기능에 추가 한 경우에도 마찬가지입니다. 이벤트 수신기에 대해 "싱글 톤"초기화 의미를 얻을 수있는 방법이 있습니까? 내 목표는 다른 스레드에서보고 일부 폴더를 설정하는 것입니다. – pstrjds

+0

내가 물어야하는 또 다른 질문은 "SharePoint 이벤트 수신기가 싱글 톤 의미론에 종속되어서는 안된다"는 것입니다. 해당 줄에 문서가 있습니까? 나는 그것을 의심하지 않고 SharePoint와 웹 스타일 개발에 익숙하지 않은 나는 몇 년 동안 데스크톱 C++/COM/C# 개발을 해왔다. – pstrjds

+0

이벤트 수신기에 대한 특정 요점에 대한 문서는 없지만 더 많이 웹 개발을하면 모든 것에 적용된다는 것을 알게 될 것입니다. HTTP는 ASP.NET이 viewstate를 사용하여 다른 방식으로 생각하게하는 것과 관계없이 상태 비 저장입니다. 한 번에 한 사람 만 aspx 페이지를 실행한다고 가정하면 좋은 유사점입니다. 웹은 모두 병렬에 관한 것이며 스택에 깊이 도달합니다. – x0n

0

-Oisin에 12을 추가하지 않는 한 이러한 이벤트 수신기의 하나가 이벤트를 처리 할 것이라는 점을 확실 할 수 있다는 것입니다 탐색기보기를 고수하면 이러한 영향이 발생합니다.

+0

그것은 12 추가 된 이벤트를 발생시킬 것이다,하지만 내가보고있는 12 생성자가 자신의 생성자를 호출하는 데, 비록 각 파일 드롭 하나의 이벤트 처리기가 호출됩니다. – pstrjds

0

기능 비활성화시 이벤트 수신기를 제거하십시오. 많은 사람들이 기능 활성화에 활성화 된 코드를 만들지 만 코드를 비활성화하지 않고 목록에 많은 수신기가있는 등 개발 환경에서는 많은 일이 발생합니다.

+1

문제는 실제로는 고아가 아닌 수신기에 대한 수신자에 대한 생성자 호출 수입니다. 이는 비활성화시 자신을 제거하는 것이 좋기 때문에 좋은 연습 개념이지만 비활성화는이 문제와 관련이 없습니다. – pstrjds

0

정적 멤버를 만들 수도 있습니다 수업 중에, 당신이 뭘했는지 알아야합니다. 당신은 그것을 시험해야 할 것입니다, 나는 그것이 효과가 있다고 약속 할 수 없습니다.

+0

stackoverflow에 오신 것을 환영합니다! 가능한 경우 게시 정확도를 향상시키고 더 나은 결과를 얻으려면 질문에 샘플 코드를 제공하는 것이 좋습니다. 좋은 하루 되세요 :) –