He escrito un módulo logger/exceptionfactory, que usa System.Diagnostics.StackTrace, para obtener atributos de los métodos de llamada y sus tipos de declaración. Sin embargo, noté que si ejecutaba el código fuera de Visual Studio en el modo de lanzamiento, algunos de mis métodos más cortos se filtran y faltan en el seguimiento de la pila. Ahora no tengo manera de probar si un método se incluirá en el tiempo de ejecución, pero no quiero [MethodImpl(MethodImplOptions.NoInlining)]
cada método importante. Pero si un método de mis clases base falta debido a él, puedo leer mal la capa y la información de operación y eso podría llevar a un registro falso o excepciones mal parametrizadas.Stack Trace para iniciar sesión en .NET
¿Existe una regla de oro para saber dónde y cuándo se inserta? ¿Los métodos virtuales, los métodos estáticos, los métodos de clase base son tratados de manera diferente? ¿Solo tengo que preocuparme por la inclusión en el interior del ensamblaje? ¿Dentro del espacio de nombres?
posible duplicado de [¿Cuándo es un método elegible para ser incluido por el CLR?] (Http://stackoverflow.com/questions/4660004/when-is-a-method-eligible-to-be-inlined-by -the-clr) –