Share via


當地語系化:移除「Pubternal」API

為了更有效地維護 ASP.NET Core 的公用 API 介面,我們移除了部分 "pubternal" 當地語系化 API。 "pubternal" API 具備 public 存取修飾詞,並在隱含內部 意圖的命名空間中定義。

如需討論,請參閱 dotnet/aspnetcore#22291

導入的版本

5.0 Preview 6

舊的行為

下列 API 為 public

  • Microsoft.Extensions.Localization.Internal.AssemblyWrapper
  • Microsoft.Extensions.Localization.Internal.IResourceStringProvider
  • Microsoft.Extensions.Localization.ResourceManagerStringLocalizer 建構函式多載接受以下任意參數型別:
    • AssemblyWrapper
    • IResourceStringProvider

新的行為

下列清單列出變更項目:

  • Microsoft.Extensions.Localization.Internal.AssemblyWrapper 變為 Microsoft.Extensions.Localization.AssemblyWrapper 且現為 internal
  • Microsoft.Extensions.Localization.Internal.IResourceStringProvider 變為 Microsoft.Extensions.Localization.Internal.IResourceStringProvider 且現為 internal
  • Microsoft.Extensions.Localization.ResourceManagerStringLocalizer 建構函式多載接受以下任意參數型別,且現為 internal
    • AssemblyWrapper
    • IResourceStringProvider

變更原因

aspnet/Announcements#377 有更透徹的說明,"pubternal" 型別已自 public API 介面移除。 這些變更能讓設計決策運用更多類別, 所謂的類別原為小組內部測試的擴充點。

雖然機率不大,部分應用程式仍可能特意或意外相依於 "pubternal" 型別。 請參閱<新行為>一節,了解如何自該型別移轉。

如果您發現公用 API 在此變更前允許但現在不允許的情節,請前往 dotnet/aspnetcore 提交問題。

受影響的 API