EWS联系人,检查电子邮件地址密码
问题描述:
因此,我正在处理的应用程序会拉出特定的Outlook联系人并显示道具。我遇到的问题是如果电子邮件地址字段存在,由于联系人可能没有电子邮件地址,我需要检查这一点。正在返回的错误消息是{“给定的键不在字典中。”}。EWS联系人,检查电子邮件地址密码
以下是代码。所以这是抱怨,电子邮件地址密钥不存在,所以它不能分配它。那么,如何在转让之前检查电子邮件密钥是否存在?
EWSForm.EmailAddresses = Contact.EmailAddresses[EmailAddressKey.EmailAddress1].Address;
答
因为EmailAddresses的类型是EmailAddressDictionary并从MSDN文档:
public sealed class EmailAddressDictionary : DictionaryProperty<EmailAddressKey,EmailAddressEntry>
你应该能够做到这一点(使用Contains(Key)
方法,这里定义http://msdn.microsoft.com/en-us/library/dd634144(v=exchg.80).aspx):
if(
Contact.EmailAddresses.
Contains(EmailAddressKey.EmailAddress1)
) {
EWSForm.EmailAddresses =
Contact.EmailAddresses[EmailAddressKey.EmailAddress1].Address;
}
答
或者使用TryGetValue()
它不会抛出异常,而是它返回一个布尔值来指示它是否能够用键返回一个值。
EmailAddress email;
var success = contact.EmailAddresses.TryGetVaue(EmailAddressKey.EmailAddress1, out email);
if (success)
{
// Use email for task
SendMail(email.Address);
}