控制台应用中的事件接收器

时间:2013-03-12 07:21:40

标签: c# visual-studio-2010 sharepoint sharepoint-2010

我创建了一个控制台应用程序,我在其中定义了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();
        }
    }
}

2 个答案:

答案 0 :(得分:0)

事件发生时会调用事件处理程序。通常,您定义一个事件处理程序,将其分配给事件,并在此事件发生时调用事件处理程序。按钮单击示例:

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

您需要使用对象注册此事件:

button1.Click += button1_click;

每次点击按钮,都会调用您的活动。 MSDN上有很多东西。请更具体地说明您的问题并告诉我们您想要做什么。

答案 1 :(得分:0)

如果您的编译输出是控制台EXE,那么它将永远不会工作。您需要创建类库(dll)才能注册并将其作为列表项事件接收器附加。

如果您只想测试在ItemAdded中编写的代码,请从中提取函数。创建两个单独的项目(Console + Class库)。在控制台应用程序中使用类库项目作为参考,并调用该方法。在ItemAdded事件中调用相同的方法。您可以将类库(dll)项目注册为事件接收器。

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