2011-01-06 59 views
1

我在2个插件(一个用于Outlook 2007和一个用于Outlook 2010)中工作。这些插件需要做的一件事就是向主分类列表添加一个分类(如果该分类尚不存在)。如何为多个Outlook帐户的主分类列表添加分类?

这是我该怎么办:

NameSpace oNS = Application.GetNamespace("MAPI"); 
if (oNS.Categories[Resources.MyCategoryName] == null) 
    { 
    oNS.Categories.Add(Resources.MyCategoryName, OlCategoryColor.olCategoryColorOrange, OlCategoryShortcutKey.olCategoryShortcutKeyNone); 
    } 

的问题是,当我在Outlook中有2个或多个电子邮件帐户,新类别只加第一帐户的主类别列表。其他帐户的主分类列表保持不变。而“第一账户”是指在Outlook中创建的第一个账户。

我在Outlook 2007和2010中都得到了这种行为。有人可以帮我解决这个问题吗?

感谢。

回答

1

您可以通过特定账户的DeliveryStore访问账户特定的类别集合。

var account = Application.Session.Accounts[0]; 
var categories = account.DeliveryStore.Categories; 

如果你想寻找你的帐户,你可以随时使用LINQ

var account = Application.Session.Accounts.Cast<Account>() 
    .FirstOrDefault(a => a.ExchangeMailboxServerName == "contoso.com"); 
+0

谢谢,这做到了。 – Florin 2011-01-21 16:07:38