Как наилучшим образом преобразовать трассировку стека в HTML (используя .NET — C #)

#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 с нуля.