我在Visual Studio(VSTO + VB.Net)中有一些代码,它将遍历Outlook收件箱中的所有项目。代码工作正常,直到我的收件箱中有其他项目,例如约会等。
以下代码已简化并迭代排序列表中的所有项目。当FolderItem(类型为MailItem)被分配了其他类型的项目时,例如,问题就出现了,例如, MeetingItemClass。提出了一个例外。
我理解为什么......但我需要一个解决方法来找到解决方法。我想处理所有项目,甚至是会议项目。
Dim InboxFolder As Outlook.MAPIFolder
Dim FolderItem As Outlook.MailItem
Dim FolderItems As Outlook.Items
Dim ItemNo As Integer
*** removed code that finds the inbox object 'InboxFolder' ***
ItemNo = 1
FolderItems = InboxFolder.Items
FolderItems.Sort("[ReceivedTime]", True)
Do While ItemNo <= FolderItems.Count
FolderItem = FolderItems(ItemNo)
*** Do some operations on each inbox-object here ***
ItemNo = ItemNo + 1
Loop
答案 0 :(得分:1)
可能性是将FolderItem定义为Object然后...
和
像这样(未经测试):
If TypeOf FolderItem Is MailItem Then
Dim mailItm As MailItem = DirectCast(FolderItem, MailItem)
'Do something
ElseIf TypeOf FolderItem Is MeetingItem Then
Dim meetItm As MeetingItem = DirectCast(FolderItem, MeetingItem)
'Do something
End If