C# Outlook.Folder和Outlok.MAPIFolder之间的差异

C# Outlook.Folder和Outlok.MAPIFolder之间的差异,c#,outlook,outlook-addin,C#,Outlook,Outlook Addin,我不清楚命名空间Outlook中的类Folder和MAPIFolder之间的区别。当我在网上查看代码时,有些人使用第一种语法,而有些人使用其他语法,我无法确定: 这只是因为他们的无知(我更不知道哪一组是正确的) 这是一种传统(适用于不同版本的Outlook) 这是完全相同的事情(我相当肯定这不是真的,但人们永远不知道) 这是一个继承结构(以及何时使用) 这只是一种避免类型问题的方法(强制转换和as-ing) 完全是其他原因(如果是,是什么原因) 这是我用来获取这两个的代码 Outlook.F

我不清楚命名空间
Outlook
中的类
Folder
MAPIFolder
之间的区别。当我在网上查看代码时,有些人使用第一种语法,而有些人使用其他语法,我无法确定:

  • 这只是因为他们的无知(我更不知道哪一组是正确的)
  • 这是一种传统(适用于不同版本的Outlook)
  • 这是完全相同的事情(我相当肯定这不是真的,但人们永远不知道)
  • 这是一个继承结构(以及何时使用)
  • 这只是一种避免类型问题的方法(强制转换和
    as
    -ing)
  • 完全是其他原因(如果是,是什么原因)
这是我用来获取这两个的代码

Outlook.Folder defaultContactsFolder_1 = 
  this.Application.Session.GetDefaultFolder(
    Outlook.OlDefaultFolders.olFolderContacts) as Outlook.Folder;

Outlook.MAPIFolder defaultContactFolder_2 = 
  this.Application.GetNamespace("MAPI").GetDefaultFolder(
    Outlook.OlDefaultFolders.olFolderContacts);
已取代。看见与
MAPIFolder

Application.Session==Application.GetNamespace(“MAPI”)
-它们可以互换。看

MAPIFolder
是Outlook 2003及以下版本的遗留版本-它们只是为了向后兼容而保留的。使用VSTO无法避免类型转换-您将不断地装箱和拆箱