У меня есть собственный класс исключений, который содержит некоторые дополнительные поля. Я хочу, чтобы они были записаны в методе ToString()
, но если я реализую свой собственный ToString()
, я потеряю некоторые другие полезные вещи (например, написание имени типа исключения, внутренних данных исключения и трассировки стека).
Каков наилучший способ/шаблон для реализации собственного метода ToString()
для таких исключений? В идеале он должен повторно использовать существующий механизм, но быть отформатирован аналогично реализации ToString()
по умолчанию.
ОБНОВЛЕНИЕ: добавление или добавление моих настраиваемых полей к тексту base.ToString() не идеально, ИМХО, например
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: я реализовал решение для этого, ищите мой собственный ответ ниже.