Speichern von Daten in VSTO Outlook Add-Ins mittels StorageItem
Bei der Speicherung von Einstellungen, Präferenzen o.ä. des Outlook Add-In für calvaDrive kam es bei jedem Update von Microsoft Outlook zu Problemen. Alle gespeicherten Informationen waren verschwunden.
Dies ist dadurch zurück zu führen, dass die Informationen über die herkömmliche settings-Datei von .NET-Anwendungen gespeichert wurden. Alle benutzerspezifischen Einstellungen wurden dabei in einem benutzerspezifischen Ordner abgelegt, dessen Name abhängig von der Outlook-Version ist. Wurde nun ein Update von Outlook installiert, so wurden die benutzerspezifischen Einstellungen an einem anderen Ort gesucht. Dadurch gingen die Informationen verloren.
Lösung:
Werden die benutzerspezifischen Einstellungen mittels StorageItem gespeichert, so gehen sie nach einem Update von Outlook nicht mehr verloren. [1]
Und so funktioniert’s:
GetStorageItem
Hole den Outlook-Speicher bzw. erstelle ihn, wenn nicht vorhanden
Folder inbox = (Folder) Globals.thisAddIn.Application.Session.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
StorageItem myStorage = inbox.GetStorage("MyStorageName", OlStorageIdentifierType.olIdentifyBySubject);
GetProperty
Hole ein Property mit einem bestimmten Namen
// If myProperty is null, then there is no property saved with this name
UserProperty myProperty = myStorage.UserProperties["MyPropertyName"];
return myProperty.Value;
CreateProperty
Erstelle ein Property, das mit einem bestimmten Namen noch nicht vorhanden ist
UserProperty myProperty = myStorage.UserProperties.Add("MyPropertyName", OlUserPropertyType.olText);
myProperty.Value = "MyPropertyValue";
myStorage.Save();
SetValue
Setze einen neuen Wert für ein bestimmtes Property
UserProperty myProperty = myStorage.UserProperties["MyPropertyName"];
myProperty.Value = "MyNewValue";
myStorage.Save();
Quellen
[1] http://stackoverflow.com/questions/10171454/what-storage-should-i-use-for-a-outlook-plugin[2] https://msdn.microsoft.com/de-de/library/office/ff864182.aspx
[3] https://msdn.microsoft.com/en-us/library/bb147821(v=office.12).aspx
[4] https://msdn.microsoft.com/en-us/library/bb206773(v=office.12).aspx