Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método StackTrace.GetFrame (Int32)

 

Publicado: octubre de 2016

Obtiene el marco de pila especificado.

Espacio de nombres:   System.Diagnostics
Ensamblado:  mscorlib (en mscorlib.dll)

public virtual StackFrame GetFrame(
	int index
)

Parámetros

index
Type: System.Int32

El índice del marco de pila solicitado.

Valor devuelto

Type: System.Diagnostics.StackFrame

El marco de pila especificado.

Marcos de pila se numeran comenzando por 0, que es el último marco de pila insertado.

En el ejemplo de código siguiente se muestra la primera y última función llama en un seguimiento de pila.

public void Level5Method()
{
   try 
   {
      ClassLevel6 nestedClass = new ClassLevel6();
      nestedClass.Level6Method();
   }
   catch (Exception e) 
   {
      Console.WriteLine(" Level5Method exception handler");

      StackTrace st = new StackTrace();

      // Display the most recent function call.
      StackFrame sf = st.GetFrame(0);
      Console.WriteLine();
      Console.WriteLine("  Exception in method: ");
      Console.WriteLine("      {0}", sf.GetMethod());

      if (st.FrameCount >1)
      {
         // Display the highest-level function call 
         // in the trace.
         sf = st.GetFrame(st.FrameCount-1);
         Console.WriteLine("  Original function call at top of call stack):");
         Console.WriteLine("      {0}", sf.GetMethod());
      }

      Console.WriteLine();
      Console.WriteLine("   ... throwing exception to next level ...");
      Console.WriteLine("-------------------------------------------------\n");
      throw e;
   }        
}

.NET Framework
Disponible desde 1.1
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: