연습: 기능 이벤트 수신자 추가
기능 이벤트 수신자는 다음과 같은 기능 관련 이벤트 중 하나가 SharePoint에서 발생할 때 실행되는 메서드입니다.
기능이 설치된 경우
기능이 활성화된 경우
기능이 비활성화된 경우
기능이 제거된 경우
이 연습에서는 SharePoint 프로젝트의 기능에 이벤트 수신자를 추가하는 방법을 보여 줍니다.다음과 같은 작업을 보여 줍니다.
기능 이벤트 수신자가 포함된 빈 프로젝트 만들기
FeatureDeactivating 메서드 처리
SharePoint 프로젝트 개체 모델을 사용하여 알림 목록에 알림 추가
[!참고]
다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.
사전 요구 사항
이 연습을 완료하려면 다음 구성 요소가 필요합니다.
지원되는 Microsoft Windows 및 SharePoint 버전.자세한 내용은 SharePoint 솔루션 개발 요구 사항을 참조하십시오.
Visual Studio
기능 이벤트 수신자 프로젝트 만들기
먼저 기능 이벤트 수신자가 포함될 프로젝트를 만듭니다.
기능 이벤트 수신자가 포함된 프로젝트를 만들려면
메뉴 표시줄에서 선택 파일, New, 프로젝트 표시 하는 새 프로젝트 대화 상자.
확장은 SharePoint 노드 중 하나에서 C# 또는 Visual Basic, 다음 선택은 2010 노드.
에 템플릿 창에서 선택에서 SharePoint 2010 프로젝트 템플릿.
프로젝트 템플릿은 없으므로 기능 이벤트 수신기에 대 한이 프로젝트 형식을 사용 합니다.
에 이름 상자에서 Featureevttest를 입력 한 다음 선택의 확인 단추를 표시 하는 SharePoint 사용자 지정 마법사.
디버깅에 사용할 사이트 및 보안 수준 지정 페이지에서 새 사용자 지정 필드 항목을 추가할 SharePoint 서버 사이트의 URL을 입력하거나 기본 위치(http://<system name>/)를 사용합니다.
에 이 SharePoint 솔루션에 대 한 신뢰 수준은 무엇입니까? 섹션에서 선택 된 팜 솔루션으로 배포 옵션 단추.
샌드박스가 적용된 솔루션과 팜 솔루션 비교에 대한 자세한 내용은 샌드박스가 적용된 솔루션 고려 사항을 참조하십시오.
선택은 완료 단추를 클릭 한 다음 Feature1 라는 기능에서 표시는 기능 노드.
기능에 이벤트 수신자 추가
다음으로, 기능에 이벤트 수신자를 추가하고 기능이 비활성화될 때 실행되는 코드를 추가합니다.
기능에 이벤트 수신자를 추가하려면
기능 노드의 바로 가기 메뉴를 열고 선택 추가 기능 피쳐를 생성 합니다.
아래는 기능 노드를 바로 가기 메뉴를 엽니다 Feature1, 다음 선택 이벤트 수신기 추가 기능에 이벤트 수신자를 추가 합니다.
Feature1 아래에 코드 파일이 추가됩니다.이 경우 프로젝트의 개발 언어에 따라 파일 이름이 Feature1.EventReceiver.cs 또는 Feature1.EventReceiver.vb로 지정됩니다.
프로젝트를 작성 하는 경우 Visual C#, 아직 없는 경우에 이벤트 수신기의 위쪽에 다음 코드를 추가 합니다.
using System;
이벤트 수신기 클래스 이벤트로 여러 주석 메서드를 포함 합니다.FeatureDeactivating 메서드를 다음 코드로 바꿉니다.
Public Overrides Sub FeatureDeactivating(ByVal properties As SPFeatureReceiverProperties) Try ' Get reference to SharePoint site. Dim site As SPSite = New SPSite("https://localhost") Dim web As SPWeb = site.OpenWeb("/") ' Get reference to Announcements list. Dim announcementsList As SPList = web.Lists("Announcements") ' Add new announcement to Announcements list. Dim oListItem As SPListItem = announcementsList.Items.Add oListItem("Title") = ("Deactivated Feature: " + properties.Definition.DisplayName) oListItem("Body") = (properties.Definition.DisplayName + (" was deactivated on: " + DateTime.Now.ToString)) oListItem.Update() Catch e As Exception Console.WriteLine(("Error: " + e.ToString)) End Try End Sub
public override void FeatureDeactivating(SPFeatureReceiverProperties properties) { try { // Get reference to SharePoint site. SPSite site = new SPSite("https://localhost"); SPWeb web = site.OpenWeb("/"); // Get reference to Announcements list. SPList announcementsList = web.Lists["Announcements"]; // Add new announcement to Announcements list. SPListItem oListItem = announcementsList.Items.Add(); oListItem["Title"] = "Deactivated Feature: " + properties.Definition.DisplayName; oListItem["Body"] = properties.Definition.DisplayName + " was deactivated on: " + DateTime.Now.ToString(); oListItem.Update(); } catch (Exception e) { Console.WriteLine("Error: " + e.ToString()); } }
기능 이벤트 수신자 테스트
다음으로, FeatureDeactivating 메서드가 SharePoint 알림 목록에 알림을 출력하는지 여부를 테스트하는 기능을 비활성화합니다.
기능 이벤트 수신자를 테스트하려면
설정 값은 프로젝트의 활성 배포 구성 속성을 없음 활성화.
이 속성을 설정하면 기능이 SharePoint에서 활성화되지 않으며 기능 이벤트 수신자를 디버깅할 수 있습니다.자세한 내용은 SharePoint 솔루션 디버깅을 참조하십시오.
선택은 F5 키 Sharepoint에 배포 프로젝트를 실행 합니다.
SharePoint 웹 페이지의 맨 위에 있는 열은 사이트 작업 메뉴를 다음 선택 사이트 설정.
아래는 사이트 작업 섹션의 사이트 설정 페이지에서 선택는 사이트 기능 관리 링크.
에 기능 페이지에서 선택 된 활성화 단추 옆에 FeatureEvtTest Feature1 기능.
에 기능 페이지에서 선택의 비활성화 단추 옆에 FeatureEvtTest Feature1 기능을 다음 선택은 이 기능 비활성화 확인 링크 기능을 비활성화 하려면.
선택 된 홈 단추.
기능이 비활성화된 후 알림 목록에 알림이 표시되는 것을 확인합니다.