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
scroll top