mirror of
https://github.com/nsnail/Ocelot.git
synced 2025-04-22 18:22:49 +08:00
Fix DI Registration for IDownstreamRouteProvider (#656)
The two singletons registered for IDownstreamRouteProvider, DownstreamRouteFinder and DownstreamRouteCreator, were registered using `TryAddSingleton`. This would cause DownstreamRouteFinder to be instantiated and found but the "Try" made DownstreamRouteCreator not registered. This was noted in the following in `DownstreamRouteProviderFactory`: ``` _providers = provider.GetServices<IDownstreamRouteProvider>().ToDictionary(x => x.GetType().Name); ``` With the registration being done using `TryAddSingleton` only one element was added to the dictionary. Changing this to `AddSingleton` fixed this issue. This was uncovered in an error on line 30 of `DownstreamRouteProviderFactory`. The key for `nameof(DownstreamRouteCreator)` did not exist causing an exception to be thrown.
This commit is contained in:
parent
622de5efd0
commit
7fb66dd34d
@ -94,8 +94,8 @@ namespace Ocelot.DependencyInjection
|
|||||||
Services.TryAddSingleton<IUrlPathToUrlTemplateMatcher, RegExUrlMatcher>();
|
Services.TryAddSingleton<IUrlPathToUrlTemplateMatcher, RegExUrlMatcher>();
|
||||||
Services.TryAddSingleton<IPlaceholderNameAndValueFinder, UrlPathPlaceholderNameAndValueFinder>();
|
Services.TryAddSingleton<IPlaceholderNameAndValueFinder, UrlPathPlaceholderNameAndValueFinder>();
|
||||||
Services.TryAddSingleton<IDownstreamPathPlaceholderReplacer, DownstreamTemplatePathPlaceholderReplacer>();
|
Services.TryAddSingleton<IDownstreamPathPlaceholderReplacer, DownstreamTemplatePathPlaceholderReplacer>();
|
||||||
Services.TryAddSingleton<IDownstreamRouteProvider, DownstreamRouteFinder>();
|
Services.AddSingleton<IDownstreamRouteProvider, DownstreamRouteFinder>();
|
||||||
Services.TryAddSingleton<IDownstreamRouteProvider, DownstreamRouteCreator>();
|
Services.AddSingleton<IDownstreamRouteProvider, DownstreamRouteCreator>();
|
||||||
Services.TryAddSingleton<IDownstreamRouteProviderFactory, DownstreamRouteProviderFactory>();
|
Services.TryAddSingleton<IDownstreamRouteProviderFactory, DownstreamRouteProviderFactory>();
|
||||||
Services.TryAddSingleton<IHttpRequester, HttpClientHttpRequester>();
|
Services.TryAddSingleton<IHttpRequester, HttpClientHttpRequester>();
|
||||||
Services.TryAddSingleton<IHttpResponder, HttpContextResponder>();
|
Services.TryAddSingleton<IHttpResponder, HttpContextResponder>();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user