Assembly.GetCallingAssembly-gedrag verandert wanneer ondersteuning voor stacktracering is uitgeschakeld

Assembly.GetCallingAssembly() ondersteunt nu Native AOT en maakt gebruik van stack-traceringsgegevens om de aanroeper op te lossen. Als ondersteuning voor stacktraces is uitgeschakeld, genereert de methode nu NotSupportedException op zowel Native AOT als CoreCLR.

Geïntroduceerde versie

.NET 11 preview 7

Vorig gedrag

Eerder, op systeemeigen AOT, Assembly.GetCallingAssembly() gooide PlatformNotSupportedExceptionaltijd . Voorheen retourneerde de methode op CoreCLR de aanroepende assembly, zelfs als StackTraceSupport was ingesteld op false.

Nieuw gedrag

Vanaf .NET 11 geeft Assembly.GetCallingAssembly() bij Native AOT de aanroepende assembly terug door de stacktraceringsgegevens te inspecteren. Vanaf .NET 11 genereert de methode, voor zowel Native AOT als CoreCLR, NotSupportedException als de StackTraceSupport-functieschakelaar is ingesteld op false.

Het uitzonderingsbericht is:

Kan stacktraceringsgegevens niet ophalen wanneer de functieswitch StackTraceSupport is ingesteld op false.

Type van brekende verandering

Deze wijziging is een gedragswijziging.

Reden voor wijziging

Voor het retourneren van een juiste aanroeper Assembly.GetCallingAssembly() zijn stack-traceringsgegevens vereist. Als ondersteuning voor stacktracering niet beschikbaar is, kan de runtime de aanroeper niet betrouwbaar bepalen. De runtime genereert NotSupportedException nu in plaats van een onjuist resultaat te retourneren. Zie dotnet/runtime#129963 voor informatie over systeemeigen AOT-ondersteuning.

Als u publiceert met StackTraceSupport ingesteld op false en uw app Assembly.GetCallingAssembly() aanroept, verwacht u NotSupportedException. Gebruik een van de volgende opties:

  • Schakel ondersteuning voor stacktracering in door de schakeloptie of instelling StackTraceSupport te verwijderen naar true.
  • Verwijder oproepen naar Assembly.GetCallingAssembly().
  • Vang NotSupportedException op en handel het fallbackpad expliciet af.

Betreffende API's