2013-03-12 64 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 2013-03-12 08:40:54

回答

0

事件處理程序被調用。通常你定義一個事件處理程序,將其分配給一個事件,當這個事件發生時,你的事件處理程序被調用。例如一個按鈕,點擊:

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

你需要註冊與對象本次活動:

button1.Click += button1_click; 

每一次你單擊該按鈕,您的事件被調用。 MSDN上有很多東西。請更具體地說明你的問題,並告訴我們你想做什麼。

+0

不知何故,即使添加項目,該代碼也無法正常工作。那麼代碼有問題嗎? – Amit 2013-03-12 08:41:36

+0

我必須說我不知道​​你在做什麼。 – 2013-03-12 08:43:45

0

如果您的編譯輸出是控制檯EXE,那麼它將無法工作。您需要創建類庫(dll)以註冊並將其附加爲列表項事件接收器。

如果您只想測試在ItemAdded中編寫的代碼,然後從中提取功能。創建兩個單獨的項目(控制檯+類庫)。在控制檯應用程序中使用類庫項目作爲參考並調用該方法。在ItemAdded事件中調用相同的方法。您可以將類庫(dll)項目註冊爲事件接收器。

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

相關問題