2011-12-19 28 views
5

Tôi gặp sự cố khi đính kèm trình xử lý sự kiện vào sự kiện ItemAdd của thư mục công khai.MụcThêm sự kiện trên thư mục công khai trên Exchange

Vấn đề là xử lý sự kiện ngừng được gọi sau một vài cuộc gọi thành công.

Mã này không quan trọng. Tôi có một lớp ThisAddIn mà tạo ra một đối tượng mà lần lượt gắn một hàm vào sự kiện ItemAdd trong hàm tạo của nó. Chức năng này chỉ bật lên một hộp thông báo.

Hãy chỉ cho tôi đi đúng hướng. Tôi chỉ đơn giản là không hiểu nơi để tìm lỗi.

Cảm ơn bạn trước, Anatoly

Đây là mã kiểm tra tôi cố gắng chạy:

public partial class ThisAddIn 
{ 
    internal static Outlook.Folder posts_folder = null; 
    private static test t; 

    private void ThisAddIn_Startup(object sender, System.EventArgs e) 
    { 

     t = new test(); 
    } 
{ 

class test 
{ 
    public test() 
    { 
     System.Windows.Forms.MessageBox.Show("Attaching..."); 
     ThisAddIn.posts_folder.Items.ItemAdd +=new Microsoft.Office.Interop.Outlook.ItemsEvents_ItemAddEventHandler(Items_ItemAdd); 
    } 
    void Items_ItemAdd(object Item) 
    { 
     System.Windows.Forms.MessageBox.Show((Item as Outlook.PostItem).Subject); 
    } 
} 
+0

bạn có thể đăng đoạn mã của mình không .. bạn khai báo trình xử lý sự kiện như thế nào .. bạn đang sử dụng bất kỳ thứ gì như EventHandlerVar + = new someeventHandler hoặc + - someEventHandler là bạn đang sử dụng một đại biểu, một callcback.? Thật khó để nói mà không nhìn thấy những gì bạn có, do đó, cảm ơn rất nhiều – MethodMan

Trả lời

3

tục googling đã làm công việc của mình. Tôi đã tìm cách giải quyết vấn đề. Có vẻ như tôi không phải là người duy nhất trải nghiệm nó.

tôi đã thêm các tài liệu tham khảo để thấy bộ sưu tập của thư mục Tôi muốn theo dõi đến phạm vi toàn cầu:

internal static class stor 
{ 
    public static Outlook.Items i; 
} 

public partial class ThisAddIn 
{ 
    internal static Outlook.Folder posts_folder = null; 

    private void ThisAddIn_Startup(object sender, System.EventArgs e) 
    { 
     // the code for finding a posts_folder is omitted 

     stor.i = posts_folder.Items; 
     stor.i.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(Posts_Add); 
    } 

    static void Posts_Add(object Item) 
    { 
     System.Windows.Forms.MessageBox.Show("New item"); 
    } 
{ 

Bây giờ nó hoạt động như mong đợi. Alhough tôi không hiểu tất cả các chi tiết họ nói đó là một vấn đề thu gom rác thải. Xử lý sự kiện của tôi cuối cùng đã được ném vào thùng rác. Tham chiếu đến bộ sưu tập Các mục trên phạm vi toàn cầu ngăn điều này xảy ra.

+0

Tuyệt vời, tôi đã ngồi đây tìm kiếm chính xác điều này ... – keynesiancross

Các vấn đề liên quan