Bagikan melalui


Pelokalan: API "Pubternal" dihapus

Untuk mempertahankan permukaan API publik ASP.NET Core dengan lebih baik, beberapa "pubternal" API pelokalan dihapus. "pubternal" API memiliki public pengubah akses dan didefinisikan dalam namespace yang menyiratkan niat internal.

Untuk diskusi, lihat dotnet/aspnetcore#22291.

Versi yang diperkenalkan

5.0 Pratinjau 6

Perilaku yang lama

API berikut adalah public:

  • Microsoft.Extensions.Localization.Internal.AssemblyWrapper
  • Microsoft.Extensions.Localization.Internal.IResourceStringProvider
  • Microsoft.Extensions.Localization.ResourceManagerStringLocalizer overload konstruktor menerima salah satu jenis parameter berikut:
    • AssemblyWrapper
    • IResourceStringProvider

Perilaku yang baru

Daftar berikut menguraikan perubahan:

  • Microsoft.Extensions.Localization.Internal.AssemblyWrapper menjadi Microsoft.Extensions.Localization.AssemblyWrapper dan sekarang internal.
  • Microsoft.Extensions.Localization.Internal.IResourceStringProvider menjadi Microsoft.Extensions.Localization.Internal.IResourceStringProvider dan sekarang internal.
  • Microsoft.Extensions.Localization.ResourceManagerStringLocalizer kelebihan beban konstruktor yang menerima salah satu jenis parameter berikut sekarang internal:
    • AssemblyWrapper
    • IResourceStringProvider

Alasan untuk berubah

Dijelaskan lebih menyeluruh di aspnet/Pengumuman#377, "pubternal" jenis dihapus dari public permukaan API. Perubahan ini menyesuaikan lebih banyak kelas dengan keputusan desain tersebut. Kelas yang dimaksud dimaksudkan sebagai titik ekstensi untuk pengujian internal tim.

Meskipun tidak mungkin, beberapa aplikasi mungkin dengan sengaja atau tidak sengaja bergantung pada jenisnya "pubternal" . Lihat bagian Perilaku baru untuk menentukan cara bermigrasi jauh dari jenis.

Jika Anda telah mengidentifikasi skenario yang diizinkan API publik sebelum perubahan ini tetapi tidak sekarang, ajukan masalah di dotnet/aspnetcore.

API yang Terpengaruh