質問

インラインではないメソッドに依存しているコードがいくつかあります。

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
    }
}

もちろん、これは、dosomhing methodがインライン化されていない場合にのみ機能します。これが、基本クラスが派生する理由です MarshallByRefObject, 、パブリック方法のインランスを妨げます。

これまでは機能していましたが、.NET 4サーバーからスタックトレースを手に入れました。

.NET 4は、より巧妙で、MyClassが内部であり、プロキシに置き換えられる可能性がないことを検出していますか?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top