2013-03-12 2 views
0

ItemAdded 이벤트 수신기 방법을 정의한 콘솔 응용 프로그램을 만들었습니다. ItemAdded 메서드를 실행하는 방법을 알고 싶었는데 Main 함수 안에서이 메서드를 호출해야합니까? 그렇다면 어떻게?콘솔 응용 프로그램의 이벤트 수신기

여기에 이벤트가 발생하면

class Program : SPItemEventReceiver 
{ 
    static void Main(string[] args) 
    { 
     Program pgm = new Program(); 
    } 

    public override void ItemAdded(SPItemEventProperties properties) 
    { 
     try 
     { 
      base.ItemAdded(properties); 
      SPSite site = new SPSite("http://cdcgtdevvm258/sites/amit/dummy"); 
      SPWeb web = site.RootWeb; 
      SPList list = web.Lists[""]; 
      SPListItem listitem = properties.List.AddItem(); 
      listitem["Title"] = "Example"; 
      listitem.Update(); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
      Console.ReadLine(); 
     } 
    } 
} 
+0

또는 코드에 문제가 있습니까? – Amit

답변

0

이벤트 핸들러가 호출 내 코드입니다. 일반적으로 이벤트 처리기를 정의하고 이벤트에 할당하면이 이벤트가 발생하면 이벤트 처리기가 호출됩니다. 버튼 클릭에 대한 예 : 객체와이 이벤트를 등록해야합니다

void button1_click(object sender, EventArgs e){ 
//handle the click-event, update UI, etc. 
} 

:

button1.Click += button1_click; 

그리고 때마다 버튼을 클릭합니다이 이벤트가 호출됩니다. MSDN에는 많은 것들이 있습니다. 귀하의 질문에 대해 더 구체적으로 설명하고 귀하가하고 싶은 것을 알려 주시기 바랍니다.

+0

아무 래도이 코드는 항목 추가시에도 작동하지 않습니다. 그렇다면 코드에 문제가 있습니까? – Amit

+0

나는 네가 뭘하고 있는지 정말로 모르겠다. –

0

컴파일 된 출력이 콘솔 EXE 인 경우 작동하지 않습니다. 목록 항목 이벤트 수신자로 등록하고 첨부하려면 클래스 라이브러리 (dll)를 작성해야합니다.

ItemAdded 안에 작성된 코드를 테스트하고 싶다면 그 코드에서 함수를 추출하십시오. 두 개의 별도 프로젝트 (콘솔 + 클래스 라이브러리)를 만듭니다. 콘솔 응용 프로그램에서 클래스 라이브러리 프로젝트를 참조로 사용하고 해당 메서드를 호출합니다. ItemAdded 이벤트에서 같은 메소드를 호출하십시오. 클래스 라이브러리 (dll) 프로젝트를 이벤트 수신기로 등록 할 수 있습니다.

참조 : http://msdn.microsoft.com/en-in/library/ms437502%28v=office.14%29.aspx

관련 문제