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();
        }
    }
}
4

2 に答える 2

0

コンパイル出力がコンソール EXE の場合、それは機能しません。リスト アイテム イベント レシーバーとして登録してアタッチするには、クラス ライブラリ (dll) を作成する必要があります。

ItemAdded 内に記述されたコードをテストしたいだけの場合は、そこから関数を抽出します。2 つの個別のプロジェクト (コンソール + クラス ライブラリ) を作成します。コンソール アプリケーションで参照としてクラス ライブラリ プロジェクトを使用し、そのメソッドを呼び出します。ItemAdded イベントで同じメソッドを呼び出します。クラス ライブラリ (dll) プロジェクトをイベント レシーバーとして登録できます。

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

于 2013-03-12T14:35:30.377 に答える
0

イベントハンドラーは、イベントが発生したときに呼び出されます。通常、イベント ハンドラーを定義し、それをイベントに割り当てます。このイベントが発生すると、イベント ハンドラーが呼び出されます。ボタンクリックの例:

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

このイベントをオブジェクトに登録する必要があります。

button1.Click += button1_click;

ボタンをクリックするたびに、イベントが呼び出されます。MSDNには多くのものがあります。あなたの質問についてより具体的に、あなたが何をしたいのかを教えてください。

于 2013-03-12T07:33:39.257 に答える