Bagikan melalui


Kedaluarsa di pustaka kelas .NET Framework

.NET Framework berubah dari waktu ke waktu. Setiap versi baru menambahkan jenis baru dan jenis anggota yang menyediakan fungsionalitas baru. Jenis yang ada dan anggotanya juga berubah dari waktu ke waktu. Misalnya, beberapa jenis menjadi kurang penting karena teknologi yang didukung digantikan oleh teknologi baru, dan beberapa metode digantikan oleh metode yang lebih baru yang lebih unggul dalam beberapa cara.

.NET Framework dan runtime bahasa umum berusaha untuk mendukung kompatibilitas mundur (memungkinkan aplikasi yang dikembangkan dengan satu versi .NET Framework untuk berjalan pada versi .NET Framework berikutnya). Ini membuatnya sulit untuk hanya menghapus jenis atau anggota jenis. Sebaliknya, .NET Framework menunjukkan bahwa jenis atau anggota jenis tidak boleh lagi digunakan dengan menandainya sebagai usang atau tidak digunakan lagi. Dengan mengusir jenis atau anggota, pengembang menyadari bahwa itu akan hilang dan sempat menanggapi penghapusannya. Namun, kode yang ada yang menggunakan jenis atau anggota terus berjalan di versi baru .NET.

Catatan

Di .NET (Core), mengusir API tidak selalu berarti bahwa API akan dihapus. Untuk informasi selengkapnya, lihat Penghapusan API di .NET.

Atribut ObsoleteAttribute

.NET Framework menunjukkan bahwa jenis atau anggota jenis usang dengan menandainya dengan ObsoleteAttribute atribut . Menerapkan atribut ke jenis atau anggota menunjukkan bahwa jenis atau anggota akan dihapus dalam beberapa versi mendatang tanpa melanggar kode yang dikompilasi yang menggunakan anggota tersebut.

Selain menunjukkan bahwa jenis atau anggota jenis sudah kedaluwarsa, ObsoleteAttribute menentukan bagaimana kompilator meng-handel kode sumber yang menyertakan jenis atau anggota tersebut. kompilator dapat mengompilasi kode tetapi memancarkan pesan peringatan, atau dapat memperlakukan penggunaan jenis atau anggota sebagai kesalahan. Dalam kasus pertama, kode berhasil dikompilasi, tetapi pesan peringatan menunjukkan bahwa jenis atau anggota kedaluwarsa. Dalam kasus kedua, kompilasi gagal.

Bahkan jika kompilasi menghasilkan kesalahan alih-alih pesan peringatan, ObsoleteAttribute tidak memengaruhi perilaku run-time. Artinya, aplikasi yang menggunakan jenis atau anggota dan yang telah berhasil dikompilasi akan selalu berjalan dengan sukses. Hanya upaya untuk mengombinasikan ulang aplikasi yang menggunakan jenis atau anggota yang gagal.

Cara menangani jenis dan anggota yang sudah usang

Saat Anda meningkatkan dan mengkompilasi ulang kode yang ada, menggunakan jenis usang atau anggota yang menghasilkan peringatan kompilator di aplikasi Anda dapat diterima. Namun, Anda harus mengulas pesan peringatan pengkompilasi untuk menentukan apakah Anda harus mengubah kode aplikasi Anda. Jika pesan tidak menunjuk ke alternatif yang sesuai, Anda harus melakukan salah satu hal berikut:

  • Ubah kode Anda dengan menghapus penggunaan jenis atau anggota, jika memungkinkan.

    -atau-

  • Mengulas dokumentasi untuk area teknologi ini untuk menentukan cara merespons penghentian.

Anda dapat memilih untuk tidak mengkompilasi ulang kode yang ada terhadap versi .NET Framework yang lebih baru. Sebagai gantinya, Anda dapat menentukan versi .NET Framework tempat kode yang dikompilasi yang ada berjalan. Misalnya, Anda memiliki aplikasi bernama app1.exe yang dikompilasi terhadap .NET Framework 3.5, tetapi Anda ingin aplikasi berjalan terhadap .NET Framework 4.5. Proses ini memerlukan langkah-langkah berikut:

  1. Membuat file konfigurasi untuk executable utama Anda dan beri nama appName.exe.config, di mana appName adalah nama aplikasi yang dapat dieksekusi. Untuk aplikasi bernama app1.exe dalam contoh kami, Anda akan membuat file konfigurasi bernama app1.exe.config.

  2. Menambahkan file konfigurasi berikut.

    <configuration>
       <startup>
          <supportedRuntime version="v4.0" />
       </startup>
    </configuration>
    

Untuk menargetkan versi .NET Framework tertentu, tetapkan salah satu nilai string berikut ke atribut version:

Versi .NET Framework version string
4.8 (termasuk 4.8.1) v4.0
4.7 (termasuk 4.7.1 dan 4.7.2) v4.0
4.6 (termasuk 4.6.1 dan 4.6.2) v4.0
4.5 (termasuk 4.5.1 dan 4.5.2) v4.0
4 v4.0
3.5 v2.0.50727
2.0 v2.0.50727
1.1 v1.1.4322
1.0 v1.0.3705

API usang untuk .NET Framework 4.5 dan versi yang lebih baru

API usang untuk versi sebelumnya

Lihat juga