2012-07-12 108 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); 
} 
相關問題