Add Config locking and caching

This commit is contained in:
TheXamlGuy
2024-10-03 22:39:56 +01:00
parent 8136739372
commit 0c091b3a27
8 changed files with 235 additions and 141 deletions
+9 -3
View File
@@ -141,10 +141,10 @@ public static class IHostBuilderExtension
}
return new ConfigurationSource<TConfiguration>(provider.GetRequiredService<IConfigurationFile<TConfiguration>>(),
section, defaultSerializer);
section,
defaultSerializer);
});
//services.AddHostedService<ConfigurationMonitor<TConfiguration>>();
services.TryAddKeyedTransient<IConfigurationReader<TConfiguration>>(section, (provider, key) =>
new ConfigurationReader<TConfiguration>(provider.GetRequiredKeyedService<IConfigurationSource<TConfiguration>>(key),
provider.GetRequiredKeyedService<IConfigurationFactory<TConfiguration>>(key)));
@@ -179,6 +179,12 @@ public static class IHostBuilderExtension
services.AddTransient(provider =>
provider.GetRequiredKeyedService<IConfigurationDescriptor<TConfiguration>>(section).Value);
services.AddHostedService(provider =>
new ConfigurationMonitor<TConfiguration>(section,
provider.GetRequiredService<IConfigurationFile<TConfiguration>>(),
provider.GetRequiredService<IServiceProvider>(),
provider.GetRequiredService<IPublisher>()));
}
});
@@ -186,7 +192,7 @@ public static class IHostBuilderExtension
}
public static IHostBuilder UseContentRoot(this IHostBuilder hostBuilder,
string contentRoot,
string contentRoot,
bool createDirectory)
{
if (createDirectory)