2012-07-12 109 views
0

因此,我正在处理的应用程序会拉出特定的Outlook联系人并显示道具。我遇到的问题是如果电子邮件地址字段存在,由于联系人可能没有电子邮件地址,我需要检查这一点。正在返回的错误消息是{“给定的键不在字典中。”}。EWS联系人,检查电子邮件地址密码

以下是代码。所以这是抱怨,电子邮件地址密钥不存在,所以它不能分配它。那么,如何在转让之前检查电子邮件密钥是否存在?

EWSForm.EmailAddresses = Contact.EmailAddresses[EmailAddressKey.EmailAddress1].Address;

回答

1

因为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; 
    } 
1

或者使用TryGetValue()它不会抛出异常,而是它返回一个布尔值来指示它是否能够用键返回一个值。

EmailAddress email; 
var success = contact.EmailAddresses.TryGetVaue(EmailAddressKey.EmailAddress1, out email); 

if (success) 
{ 
    // Use email for task 
    SendMail(email.Address); 
} 
相关问题