Outlook.Folder和Outlok.MAPIFolder之间的区别
我不清楚命名空间Outlook
的类和MAPIFolder
类之间的区别。 当我查看网络中的代码时,有些人使用第一个,而其他人使用其他语法,我无法确定是否:
- 这只是因为他们的无知(甚至更少,我可以分辨哪个群体是正确的)
- 它是某种遗留(用于不同版本的Outlook)
- 这是完全相同的事情(我确信这不是真的,但我不知道)
- 它是一个inheritance结构(以及什么时候使用)
- 它只是一种避免类型问题的方法(强制转换和asing)
- 完全是其他原因(如果是这样的话)
这是我用来获取这两个代码的代码。
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);
Folder
已取代MAPIFolder
,现已弃用 。 查看相关的SOpost 。 与MAPIFolder
相比, Folder
具有其他事件挂钩
Application.Session == Application.GetNamespace("MAPI")
– 它们是可互换的。 查看相关的SOpost 。
MAPIFolder
和GetNamespace()
是从Outlook 2003及以下MAPIFolder
inheritance的 – 它们只是为了向后兼容而保留。 没有办法避免使用VSTO进行类型转换 – 你将不断进行装箱和拆箱。