EWS交换 - 将NotificationEvent转换为ItemEvent时的null引用

时间:2016-05-03 14:17:01

标签: c# exchangewebservices

我正在尝试使用流侦听器获取日历通知。

在整个互联网上,这些例子看起来非常相似。但在我的情况下,当我将NotificationEvent转换为ItemEvent以获取ItemId时,转换运行良好但对象始终是 null 。在内部NotificationEvent是FolderEvent(没有ItemId),无论如何,它总是被转换为ItemEvent。

    public void OnNotificationEvent(object sender, NotificationEventArgs args)
    {
        foreach (NotificationEvent notification in args.Events)
        {
            ItemEvent itemEvent = notification as ItemEvent;
            ... //Other code goes here
         }
     }

1 个答案:

答案 0 :(得分:1)

根据您订阅的项目和文件夹通知事件的类型,应该是您应该首先检查通知的类型,例如

        if (notification is ItemEvent) 
    { 
        // The NotificationEvent for an e-mail message is an ItemEvent. 
        ItemEvent itemEvent = (ItemEvent)notification; 

    } 
    else 
    { 
        // The NotificationEvent for a folder is an FolderEvent. 
        FolderEvent folderEvent = (FolderEvent)notification; 

    } 

文件夹事件通知基本上可以让您知道文件夹中的内容已发生变化以及基础未读项目计数是什么。然后,您应该根据更改的类型收到单独的ItemEvent。

干杯 格伦