2013-02-11 160 views
5

我想要在我的Outlook 2010加载项中获取所有选定的电子邮件。我发现这个MSDN tutorial,但我在C#中的初学者,我不太了解这行代码:Object selObject = this.Application.ActiveExplorer().Selection[3];C#Outlook加载项获取选定的电子邮件

我相信Selection[]是一样的东西覆盖的运营商,索引在C#。但是,有没有办法看到它的实现?如果我通过代码,我只看到接口,但没有实现。所以我不知道Selection对象的结构。 operator []背后究竟是什么。

此外,为什么选择的项目从索引1开始而不是0?

回答

4

该行检索第三个选定的消息。
Selection []等同于Selection.Item() - Item函数被标记为索引属性访问器。
你看不到实现 - 它全部在Outlook对象模型中。
所有的Outlook集合都以1开头,而不是从0开始。这就是它以前在VB中的样子,因此Outlook对象模型使用相同的约定。

1

我知道这有点晚,但这个问题在搜索引擎中排名很高。这里是我用来在Outlook Interop中获得选定电子邮件的解决方案:

internal static IEnumerable<MailItem> GetSelectedEmails() 
     { 
      foreach (MailItem email in new Microsoft.Office.Interop.Outlook.Application().ActiveExplorer().Selection) 
      { 
       yield return email; 
      } 
     } 
+0

永远不会太晚,我现在正在与VSTO合作,这对我有所帮助。 +1 – Rafael 2018-03-07 19:43:00

相关问题