Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.
Tindakan yang disarankan
Jika Anda menerbitkan dengan StackTraceSupport diatur ke false dan aplikasi Anda memanggil Assembly.GetCallingAssembly(), harapkan NotSupportedException. Gunakan salah satu opsi ini:
- Aktifkan dukungan jejak tumpukan dengan menghapus switch atau menyetel
StackTraceSupportketrue. - Hapus panggilan ke Assembly.GetCallingAssembly().
- Tangkap NotSupportedException dan tangani jalur fallback secara eksplisit.