2017-03-07 78 views
2

我只想驗證是否有人正在爲C#測試新的Twilio helper類5.x以及現在如何管理異常管理。新的API打破因爲以下的原因我的代碼:Twilio新的API 5.x

我有我的代碼發送消息的方法,像這樣的:

public static MessageResource SendMessage(SmsMessage smsMessage, out MessageResource msgResult) 
{ 
    _log.DebugFormat("[ClassName: {0}] [Executing Method: {1}]", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name); 

    SmsConfiguration smsRestClient = new SmsConfiguration(smsMessage.ChannelName); 

    msgResult = MessageResource.Create(
        from: new PhoneNumber(smsMessage.MessageFrom), 
        to: new PhoneNumber(smsMessage.MessageTo), 
        body: smsMessage.MessageBody, 
       mediaUrl: new List<Uri>() { new Uri(smsMessage.MessageAttachments) }, 
     statusCallback: new Uri(smsRestClient.ConfigToSmsStatusCallbackUrl.isValidUrl(false) ? smsRestClient.ConfigToSmsStatusCallbackUrl : null) 
    ); 

    return msgResult; 
} 

正在內SmsConfiguration進行初始化,沒有問題有新的靜態方法。但在我的4.x版本,而不是MessageResource我一直在使用消息類和該消息類有一個RestException其中包含所有來自Twilio的錯誤,現在如果我使用MessageResource我需要使用Try..CatchmsgResult永遠不會填充。因爲每個單獨的代碼行形成該點的爆炸,因爲msgResult變量只被傳遞給Twilio的成功消息填充。

任何想法?

回答

1

我已經找到了解決方案!必須實現ApiException而不是SystemException。通過APIException,我創建了一個類型爲MessageResult的對象,其中異常和MessageResource作爲屬性,然後相應地填充boolean標誌用於RestException模擬。