vs2008 을 사용하였으며 대상서버는 window2008R2 입니다.
이미 sharepoint2007 이 깔려있는 상태에서 이벤트 받는방법만 씁니다.
sharepoint 설치여부는 위와같이 iis 에서 확인하시기 바랍니다.
1.새프로젝트로 위와같이 Dll 프로젝트를 하나 생성합니다.
2.아래 첨부된 Microsoft.SharePoint.dll 파일을 참조에 추가합니다.
3.아래와 같이 프로젝트의 속성창으로 들어갑니다.
4.Signing 탭에서 assembly를 생성합니다.
5.아래와 같이 생성됐는지 확인합니다.
6.Class1.cs 파일에 아래와 같이 코딩해서 이벤트를 추가할수 있습니다.
여기선 added 이벤트 발생시 c: 에 aa.txt에 내용은 test 가 적힌 텍스트 파일을 만들겠습니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using System.IO;
namespace EventReceiver_Test
{
public class Class1 : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
base.ItemAdded(properties);
File.WriteAllText(@"C:\aa.txt", "test");
}
}
}
7.빌드하여 EventReceiver_Test.dll 파일이 생성 됐는지 확인합니다.그리고 아래 첨부된 파일 3개를 dll이 있는폴더에 같이 넣고
Bat_RegisterGacUtil.bat 의 경로를 자신에 맞게 수정해준후 실행합니다.
8.아래와같이 C:\Windows\assembly 에 EventReceiver_Test 가 등록되었는지 확인합니다.(등록은 Sharepoint 가 깔려있는 서버에서 해야 합니다.)
9.새콘솔 프로젝트를 하나 생성합니다.
10. 2번에 첨부된 파일을 참조추가하고 아래와 같이 코딩해서 실행하면 SharePoint 의 이벤트에 등록됩니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
namespace EventReceiver_TestRun
{
class Program
{
static void Main(string[] args)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite("http://aa.aaa.com/100001")) //Sharepoint 의 이벤트를 받을 siteUrl
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.GetList(web.Url + "/" + "Lists/Test"); //Sharepoint 의 이벤트를 받을 siteUrl 을 제외한 ListUrl
List<SPEventReceiverType> spEventReceiverTypeList = new List<SPEventReceiverType>();
spEventReceiverTypeList.Add(SPEventReceiverType.ItemAdding);
spEventReceiverTypeList.Add(SPEventReceiverType.ItemAdded);
for (int i = 0; i < spEventReceiverTypeList.Count; i++)
{
SPEventReceiverDefinition definition = list.EventReceivers.Add();
//어셈블리명, 버전,문화, 공개키토큰(어셈블리명과 공개키 토큰만 수정해주면됨 - 8번의 스샷처럼 폴더상에서 어셈블리명과 공개키토큰을 직접 확인하실 수 있습니다.)
definition.Assembly = @"EventReceiver_Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8bc047163bf807ff";
definition.Class = @"EventReceiver_Test.Class1"; //좀전에 등록한 어셈블리의 클래스명
definition.Type = spEventReceiverTypeList[i];
definition.SequenceNumber = 65535;
definition.Update();
}
}
}
});
Console.WriteLine("end");
}
}
}
11.Sharepoint 의 등록된 리스트 경로에서 새 아이템추가로 지정한경로에 텍스트 파일이 생기는걸 확인 하실수 있습니다.
다른 추가 이벤트가 필요하면 추가하시면되고 이벤트 발생시 다른 내용등이 필요하면 txt 파일이나 xml 파일등으로 추가하시면 됩니다.
'[ Program ] > C#' 카테고리의 다른 글
ComboBox의 SelectedValue값의 DataRowView object 에러 (0) | 2012.09.18 |
---|---|
[C#] 메시지 후킹하는 방법 (0) | 2012.09.18 |
c#에서 mysql 접속하기 (0) | 2012.09.17 |
이벤트 만드는법, 이벤트로 폼간 데이터 전달하는법 (0) | 2012.09.17 |
DataTable 에서 원하는 데이터 만 가져오기 (0) | 2012.09.17 |
댓글