У меня есть специальный класс исключений, который содержит некоторые дополнительные поля. Я хочу, чтобы они были записаны в методе ToString()
, но если я реализую свой собственный ToString()
, я теряю некоторые другие полезные вещи (например, записывая имя типа исключения, внутренние данные исключения и трассировку стека).
Каков наилучший способ/шаблон для реализации собственного метода ToString()
для таких исключений? В идеале он должен повторно использовать существующий механизм, но быть отформатирован таким же образом, как и стандартная реализация ToString()
.
UPDATE: добавление или добавление моих настраиваемых полей в base.ToString() текст не является идеальным IMHO, например
PimTool.Utilities.OERestServiceUnavailableException: test ---> System.InvalidOperationException: inner message
--- End of inner exception stack trace ---
at PimTool.Tests.Services.OE.OERestClientTests.ExceptionsLogging() in D:\svn\NewPimTool\PimTool.Tests\Services\OE\OERestClientTests.cs:line 178,
StatusCode=0, message='test', requestId='535345'
означает, что пользовательские поля записываются в конце (потенциально длинного) описания исключений. С другой стороны, я хочу, чтобы тип исключения был первой информацией, записанной в описании.
ОБНОВЛЕНИЕ 2: я применил для этого решение, найдите свой ответ ниже.