2016-02-29 65 views
4

我正在为C#中的Outlook开发VSTO加载项。我希望能够保存一些加载项特定的数据,这是一种复杂的用户定义类型。我已经通过了StorageItem API的MSDN文档,但没有多大帮助。使用StorageItem是否正确?任何代码示例都会有帮助。如何使用StorageItem保存vsto加载项的特定数据

+0

你准备了什么代码? –

回答

1

由于解决方案存储创建为文件夹中的隐藏项目,因此如果存储提供程序支持隐藏项目并且客户端有权写入该文件夹,则只能存储解决方案数据。

private string GetWorkHoursXML() 
{ 
    try 
    { 
     Outlook.StorageItem storage = 
     Application.Session.GetDefaultFolder(
     Outlook.OlDefaultFolders.olFolderCalendar).GetStorage(
     "IPM.Configuration.WorkHours", 
     Outlook.OlStorageIdentifierType.olIdentifyByMessageClass); 
     Outlook.PropertyAccessor pa = storage.PropertyAccessor; 
     // PropertyAccessor will return a byte array for this property 
     byte[] rawXmlBytes = (byte[])pa.GetProperty(
     "http://schemas.microsoft.com/mapi/proptag/0x7C080102"); 
     // Use Encoding to convert the array to a string 
     return System.Text.Encoding.ASCII.GetString(rawXmlBytes); 
    } 
    catch 
    { 
     return string.Empty; 
    } 
} 

查看How to: Store Solution-Specific Data as a Hidden Message in a Folder了解更多信息。

+2

仍然没有帮助。它与MSDN提供的一样。您能否提供一些代码示例以将我的数据保存在存储中以及如何检索它?你的例子只显示检索字符串。但我希望能够存储和检索复杂的用户定义的数据类型,并将其恢复。 – Teja

相关问题