using System.Collections;
public static void Main(string[] args)
string text = "{\"Code\":-2146232800,\"ExceptionType\":\"IOException\",\"Message\":\"Msg\",\"Stacktrace\":\"Some\"}";
var obj = JsonConvert.DeserializeObject<FileUploadError>(text);
Console.WriteLine(obj.Code);
public class FileUploadError
public FileUploadError(Exception exception)
Code = exception.HResult;
ExceptionType = exception.GetType().Name;
Message = GetMessage(exception);
Stacktrace = exception.StackTrace;
if (exception.Data.Count > 0)
Data = string.Join(Environment.NewLine, exception.Data.Cast<DictionaryEntry>().Select(x => x.Key + "=" + x.Value));
private string GetMessage(Exception exception)
if (exception.InnerException == null)
return exception.Message;
const string delimiter = "->";
var sb = new StringBuilder(1024);
for (var ex = exception; ex != null; ex = ex.InnerException)
sb.Append(ex.Message).Append(delimiter);
sb.Length -= delimiter.Length;
[JsonProperty("Code", NullValueHandling = NullValueHandling.Ignore)]
public int Code { get; set; }
[JsonProperty("ExceptionType", NullValueHandling = NullValueHandling.Ignore)]
public string ExceptionType { get; set; }
[JsonProperty("Message", NullValueHandling = NullValueHandling.Ignore)]
public string Message { get; set; }
[JsonProperty("Stacktrace", NullValueHandling = NullValueHandling.Ignore)]
public string Stacktrace { get; set; }
[JsonProperty("Data", NullValueHandling = NullValueHandling.Ignore)]
public string Data { get; set; }