Est-ce que .NET 4 en ligne MarshalByRefObject Méthodes?
-
30-10-2019 - |
Question
J'ai un code qui reposait sur les méthodes qui ne sont pas inclinées:
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
}
}
Bien sûr, cela ne fonctionne que si la méthode du dossier n'est pas inclinée. C'est la raison pour laquelle la classe de base dérive de MarshallByRefObject
, qui empêche l'inlinaison des méthodes publiques.
Cela a fonctionné jusqu'à présent, mais j'ai obtenu un StackTrace à partir d'un serveur .NET 4 montrant que le Stackwalk a atteint l'appelant de Dosomething.
Le .NET 4 est-il plus intelligent et détecte-t-il que MyClass est interne et n'a aucune chance d'être substitué par un proxy?
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow