2012-09-10 23 views
6

के बीच अंतर मैं Folder और MAPIFolder नामस्थान Outlook में अंतर के बारे में स्पष्ट नहीं हूं। मैं नेट में कोड की समीक्षा करते हैं, कुछ पहले का उपयोग करें, जबकि दूसरों को अन्य सिंटैक्स का उपयोग करें और मैं वास्तव में निर्धारित नहीं कर सकता है, तो:Outlook.Folder और Outlok.MAPIFolder

  • यह सिर्फ उनके अज्ञान के कारण है (और भी कम मैं बता सकता है जो समूह (आउटलुक के विभिन्न संस्करणों)
  • यह बहुत ही बात (कुछ मैं काफी यकीन है के लिए उपयोग सही एक)
  • यह विरासत किसी तरह का है सच नहीं है, लेकिन एक कभी नहीं जानता)
  • यह एक है विरासत संरचना (और जब उपयोग करें)
  • यह प्रकार के मुद्दों से बचने का एक तरीका है (कास्टिंग और 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); 

उत्तर

13

FolderMAPIFolder which is now deprecated अधिक्रमित किया है। related SO post देखें। Folder में MAPIFolder

Application.Session == Application.GetNamespace("MAPI") की तुलना में अतिरिक्त ईवेंट हुक हैं - वे एक दूसरे के बदले हैं। related SO post देखें।

MAPIFolder और GetNamespace() आउटलुक 2003 और नीचे से ओवर लेते हैं - उन्हें अभी पीछे की संगतता के लिए रखा गया है। वीएसटीओ के साथ टाइप कास्टिंग से बचने का कोई तरीका नहीं है - आप लगातार मुक्केबाजी और अनबॉक्सिंग करेंगे।

+0

शानदार! बहुत सूचनाप्रद। हमेशा की तरह... –