Fix selection of custom ContextManager through CslaOptions #4049
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #4047
This pull request addresses the issue of
ApplicationContextAccessor
not selecting theContextManager
specified inCslaOptions.ContextManagerType
over the default one. The changes ensure that customContextManager
types are prioritized and registered before the default types, allowing for the correctContextManager
to be used according to the configuration.RegisterContextManager
method inConfigurationExtensions.cs
to useTryAddScoped
instead ofAddScoped
for registering defaultContextManager
types. This change prevents overwriting custom registrations if a customContextManagerType
is provided inCslaOptions
.ContextManagerType
is specified, it is registered before attempting to register any defaultContextManager
types, allowing the custom type to take precedence.TryAddScoped
in theLoadContextManager
method for loading specificContextManager
types based on the environment, further ensuring that custom types are not overwritten by default or environment-specific types.For more details, open the Copilot Workspace session.