2013-03-12 74 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

相关问题