#c# #.net #html
#c# #.net #HTML
Вопрос:
Здравствуйте, есть ли класс, который выполняет красивое преобразование?
Ответ №1:
В нее ничего не встроено, но это было бы довольно просто.
Просто возьмите трассировку стека:
// Create trace from exception
var trace = new System.Diagnostics.StackTrace(exception);
// or for current code location
var trace = new System.Diagnostics.StackTrace(true);
Получив это, просто повторите фреймы стека и отформатируйте их по своему усмотрению.
Существует множество способов форматирования этого в HTML — это действительно зависит от того, как вы хотите, чтобы это выглядело. Основная концепция будет:
int frameCount = trace.Framecount;
for (int i=0;i<frameCount; i)
{
var frame = trace.GetFrame(i);
// Write properties to formatted HTML, including frame.GetMethod()/frame.GetFileName(), etc.
// The specific format is really up to you.
}
Ответ №2:
Это не новый вопрос, однако я бы предпочел предложить использовать nuget с открытым исходным кодом, например https://github.com/atifaziz/StackTraceFormatter чем изобретать велосипед, создавая HTML с нуля.