Back to Aspnetcore

Breaking change: Localization: Obsolete constructor removed in request localization middleware

aspnetcore/breaking-changes/5/localization-requestlocalizationmiddleware-constructor-removed.md

latest2.0 KB
Original Source

Localization: Obsolete constructor removed in request localization middleware

The xref:Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware constructor that lacks an xref:Microsoft.Extensions.Logging.ILoggerFactory parameter was marked as obsolete in this commit. In ASP.NET Core 5.0, the obsolete constructor was removed. For discussion, see dotnet/aspnetcore#23785.

Version introduced

5.0 Preview 8

Old behavior

The obsolete RequestLocalizationMiddleware.ctor(RequestDelegate, IOptions<RequestLocalizationOptions>) constructor exists.

New behavior

The obsolete RequestLocalizationMiddleware.ctor(RequestDelegate, IOptions<RequestLocalizationOptions>) constructor doesn't exist.

Reason for change

This change ensures that the request localization middleware always has access to a logger.

When manually constructing an instance of RequestLocalizationMiddleware, pass an ILoggerFactory instance in the constructor. If a valid ILoggerFactory instance isn't available in that context, consider passing the middleware constructor a xref:Microsoft.Extensions.Logging.Abstractions.NullLoggerFactory instance.

Affected APIs

RequestLocalizationMiddleware.ctor(RequestDelegate, IOptions<RequestLocalizationOptions>)

<!-- ### Category ASP.NET Core ### Affected APIs `M:Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.#ctor(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions{Microsoft.AspNetCore.Builder.RequestLocalizationOptions})` -->