11

FolderクラスとMAPIFolder名前空間の違いがよくわかりませんOutlook。ネットでコードを確認すると、最初のものを使用する人もいれば、他の構文を使用する人もいます。

  • それは単に彼らの無知のせいです (そして、どのグループが正しいのかさえ私にはわかりません)
  • それはある種のレガシーです (異なるバージョンの Outlook での使用)
  • それはまったく同じことです(私がかなり確信していることは真実ではありませんが、誰も知りません)
  • それは継承構造です(そしていつ何を使うべきか)
  • これは単に型の問題 (キャストとas-ing)を回避する方法です。
  • それは完全に他の理由です(もしそうなら、それはどれですか)

これら2つを取得するために使用しているコードは次のとおりです。

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);
4

1 に答える 1

17

FolderMAPIFolder現在非推奨になっているものに取って代わりました。関連する SO 投稿を参照してください。Folderと比較して、追加のイベント フックがあります。MAPIFolder

Application.Session == Application.GetNamespace("MAPI")- それらは交換可能です。関連する SO 投稿を参照してください。

MAPIFolderGetNamespace() Outlook 2003 以前から引き継がれています。下位互換性のために保持されています。VSTO で型キャストを回避する方法はありません。常にボックス化とボックス化解除を行うことになります。

于 2012-09-10T14:11:36.620 に答える