C# Обертка класса погашения не запускает события
Я написал следующий класс-оболочку для надстройки Outlook с использованием Redemption:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace PSTAttachRemove_Redemption
{
class PSTWatch
{
private Redemption.RDOPstStore pst;
public PSTWatch(Redemption.RDOPstStore rPST)
{
pst = rPST;
pst.OnMessageMoved += new Redemption.IRDOStoreEvents_OnMessageMovedEventHandler(pst_OnMessageMoved);
}
void pst_OnMessageMoved(string EntryID)
{
Debug.Print(EntryID);
}
}
}
В моем основном коде надстройки я вызываю эту оболочку, используя этот код:
void FileStorePopulation(Redemption.RDOStore store)
{
switch (store.StoreKind)
{
case TxStoreKind.skPstAnsi:
case TxStoreKind.skPstUnicode:
PSTWatch p = new PSTWatch(store as RDOPstStore);
watchedPSTs.Add(store.EntryID, p);
break;
}
}
где watchedPSTs - глобальная переменная.
Я вижу, что наблюдаемые PST заполняются, но элементы никогда не запускаются при перемещении сообщения в PST. Идеи?
Спасибо
1 ответ
Решение
Как вы инициализируете RDOSession? Вы вызываете Logon или устанавливаете RDOSession.MAPIOBJECT в Namespace.MAPIOBJECT из OOM? объявляется ли список watchedPSTs на глобальном (классовом) уровне? Вы используете несколько потоков?