我正在为 C# 中的 Outlook 开发一个 VSTO 加载项。我希望能够保存一些特定于加载项的数据,这是一种复杂的用户定义类型。我已经浏览了StorageItem API的MSDN文档,但没有多大帮助。使用存储项是正确的方法吗?任何代码示例都会有所帮助。
由于解决方案存储是作为文件夹中的隐藏项创建的,因此仅当存储提供程序支持隐藏项并且客户端有权写入该文件夹时,才能存储解决方案数据。
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;
}
}
有关更多信息,请参见如何:将特定于解决方案的数据作为隐藏邮件存储在文件夹中。