Я работаю над кодом для асинхронного использования HttpWebRequest.Если кто-то из вас когда-либо делал это раньше, то вы знаете, что обработка ошибок может быть немного болезненной, потому что если исключение выдается в одном из методов обратного вызова, оно не может быть передано обратно в вызывающий код с помощью try/ catch block.
Я хочу обрабатывать ошибки, сохраняя исключения в моем объекте состояния, который передается каждому методу обратного вызова.Если исключение обнаружено, объект состояния будет обновлен, а затем вызов http будет прерван.У меня проблема в том, что в моем объекте состояния я должен использовать свойство Exception, чтобы можно было сохранить любой тип исключения.Когда вызывающий код проверяет объект состояния и «видит» исключение, он не знает, что это за исключение.
Есть ли способ, позволяющий моему объекту состояния содержать исключение любого типа, но при этом сохранять строго типизированное исключение?
Объект состояния
public class HttpPostClientAsyncModel
{
public HttpResponseSnapshot Response { get; set; }
public HttpPostClientAsyncStatus Status { get; set; }
public Exception Exception { get; set; }
public WebRequest Request { get; set; }
}