Dari FromKeyedServicesAttribute.Key bisa null

FromKeyedServicesAttribute.Key telah diubah dari object non-nullable ke object? nullable untuk mendukung nilai null pada layanan tanpa kunci dan skenario pewarisan.

Versi yang diperkenalkan

.NET 8

Perilaku sebelumnya

Sebelumnya, FromKeyedServicesAttribute.Key dinyatakan sebagai non-nullable object:

public object Key { get; }

Perilaku baru

Mulai dari .NET 8, FromKeyedServicesAttribute.Key sekarang dinyatakan sebagai nullable object?:

public object? Key { get; }

Nilai null menunjukkan tidak ada kunci dan hanya jenis parameter yang digunakan untuk menyelesaikan layanan. Ini berguna untuk implementasi dependency injection yang memerlukan cara eksplisit untuk menyatakan bahwa parameter harus ditentukan untuk layanan tanpa kunci. Nilai null juga digunakan dengan skenario pewarisan untuk menunjukkan bahwa kunci harus diwariskan dari cakupan induk.

Jenis perubahan yang memutus kompatibilitas

Perubahan ini dapat memengaruhi kompatibilitas sumber.

Alasan perubahan

Dukungan ditambahkan untuk layanan berpenanda kunci, memungkinkan parameter di-anotasi sebagai tidak berpenanda kunci. Perubahan ini memungkinkan pengembang untuk secara eksplisit menunjukkan kapan parameter harus diselesaikan tanpa kunci, yang sangat berguna dalam skenario di mana layanan kunci dan yang tidak di-kunci terdaftar untuk jenis yang sama.

Sesuaikan kode apa pun yang menggunakan FromKeyedServicesAttribute.Key untuk menangani null nilai.

API yang terpengaruh