當地語系化:移除「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
Microsoft.Extensions.Localization.Internal.AssemblyWrapper
Microsoft.Extensions.Localization.Internal.IResourceStringProvider
- ResourceManagerStringLocalizer.ResourceManagerStringLocalizer