У меня есть проект надстройки Outlook 2010, написанный на С# с использованием Visual Studio 2010.
Поскольку надстройка в целом работает в Outlook 2013, я просто хочу внести небольшую модификацию, чтобы предотвратить проблемы с новой функцией InlineResponse в Outlook 2013.
Я хочу зарегистрировать обработчик событий для события InlineResponse без обновления до VS 2012 (из-за удаленного проекта установщика). Я читал об использовании размышлений. чтобы получить новые события.
Я не получаю никаких исключений, но событие не запускает мой обработчик (OnInlineResponse не вызывается).
public partial class ThisAddIn
{
Outlook.Explorer _explorer;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
_explorer = Application.ActiveExplorer();
AddInlineResponseHandler();
}
private void AddInlineResponseHandler()
{
var einfo = _explorer.GetType().GetEvent("InlineResponse", BindingFlags.Public | BindingFlags.Instance);
if (einfo != null)
{
var handler = Delegate.CreateDelegate(einfo.EventHandlerType, this, this.GetType().GetMethod("OnInlineResponse", BindingFlags.NonPublic | BindingFlags.Instance), false);
einfo.AddEventHandler(_explorer, handler);
}
}
private void OnInlineResponse()
{
System.Windows.Forms.MessageBox.Show("InlineResponse");
}
}
Любые предложения, как я могу добиться желаемого поведения?