Witam wszystkich.
Tworzę własny MessageBox wykorzystywany przy wyjątkach, ponieważ chcę mieć możliwość wysyłania błędów wygenerowanych przez program mailem.
MessageBox ma być uniwersalny dla całej aplikacji z tego powodu chciałbym przekazywać do niego HResult przechwytywany z Exception.
Niestety nie znalazłęm nigdzie informacji jak na podstawie HResult pobrać np. StackTrace.
Może ktoś już spotkał się z podobnym problemem?
Dlaczego nie przekażesz wyjątku?
Co do pytania — z HResult nie da się pobrać stosu, to są dwie różne rzeczy.
Ponieważ ma to być uniwersalny form dla całej aplikacji w przypadku wystąpienia wyjątku ma być mozliwość wysłania mailem takiego stringu.
string Error = string.Format("HResult: {0}\r\n " +
"Message: {1}\r\n " +
"Source: {2}\r\n " +
"StackTrace: {3}\r\n" +
"HelpLink: {4}", ex.HResult.ToString(), ex.Message, ex.Source, ex.StackTrace.ToString(), ex.HelpLink);
Z tego właśnie powodu chciałem przesyłać HResult a już w CustomMsgBox pobierać dane z Exception.
Brzmi troche jak pytanie XY. Bardzo niepokojące jest to że piszesz jednocześnie o MessageBox i o wysyłce błędu e-mailem. Napisz co dokladnie chcesz zrobić bo mozliwe ze wynajdujesz koło na nowo.
Tworzę własny MessageBox gdzie uzytkownicy moga przesłać raport z błędem który im się pojawił.
Chciałbym aby był uniwersalny dla całego projektu.
Dla tego zadałem pytanie czy jest możliwość aby przy pomocy zmiennej HResult wyciągnąć dane o Exception.
Nie możesz stworzyć funkcji, która będzie uruchamiać twój MesaageBox i do niej jawnie przekazywać cały obiekt Exception, który wyskoczył? Z samego hResult nie uzyskasz takich informacji.