Pregunta
Tengo algún código que se basó en métodos que no se ingresan:
internal class MyClass : BaseClass
{
// should not be inlined
public void DoSomething(int id)
{
base.Execute(id);
}
}
public abstract class BaseClass : MarshallByRefObject
{
[MethodImpl(MethodImplOptions.NoInlining)]
protected void Execute(params object[] args)
{
// does a stack walk to find signature of calling method
}
}
Por supuesto, esto solo funciona si el método de tenddo no se inclina. Esta es la razón por la cual la clase base deriva de MarshallByRefObject
, que evitan la incrustación de los métodos públicos.
Funcionó hasta ahora, pero obtuve una StackTrace de un servidor .NET 4 que muestra que el stackwalk llegó a la persona que llamó a Dosomething.
¿El .NET 4 está enliviendo más inteligente y detecta que MyClass es interna y no tiene posibilidad de ser sustituido con un proxy?
No hay solución correcta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow