Perilaku Assembly.GetCallingAssembly berubah saat dukungan pelacakan tumpukan dinonaktifkan

Assembly.GetCallingAssembly() sekarang mendukung Native AOT dan menggunakan data stack trace untuk menentukan pemanggil. Jika dukungan jejak tumpukan dinonaktifkan, metode kini akan melemparkan NotSupportedException baik di Native AOT maupun di CoreCLR.

Versi yang diperkenalkan

.NET 11 Preview 7

Perilaku sebelumnya

Sebelumnya, pada Native AOT, Assembly.GetCallingAssembly() selalu melemparkan PlatformNotSupportedException. Sebelumnya, pada CoreCLR, metode mengembalikan rakitan panggilan bahkan jika StackTraceSupport diatur ke false.

Perilaku baru

Mulai dari .NET 11, pada AOT Asli, Assembly.GetCallingAssembly() mengembalikan rakitan panggilan dengan memeriksa data pelacakan tumpukan. Mulai dari .NET 11, baik di Native AOT maupun CoreCLR, metode akan memunculkan NotSupportedException jika sakelar fitur StackTraceSupport disetel ke false.

Pesan pengecualian adalah:

Tidak dapat mengambil informasi pelacakan tumpukan ketika sakelar fitur StackTraceSupport diatur ke false.

Jenis perubahan yang memutus kompatibilitas

Perubahan ini adalah perubahan perilaku.

Alasan perubahan

Untuk mengembalikan pemanggil yang benar, Assembly.GetCallingAssembly() memerlukan data pelacakan tumpukan. Jika dukungan stack trace tidak tersedia, lingkungan runtime tidak dapat menentukan pemanggil secara andal. Runtime sekarang melemparkan NotSupportedException alih-alih mengembalikan hasil yang salah. Untuk detail tentang dukungan Native AOT, lihat dotnet/runtime#129963.

Jika Anda menerbitkan dengan StackTraceSupport diatur ke false dan aplikasi Anda memanggil Assembly.GetCallingAssembly(), harapkan NotSupportedException. Gunakan salah satu opsi ini:

API yang Terpengaruh