Open
Description
Comment by @KalleOlaviNiemitalo in dotnet/runtime#43869 (comment):
While implementing Microsoft.Extensions.Configuration.IConfiguration, I did not find any documentation on the following:
- Whether the getters and setters are required to be thread-safe. I believe at least the IConfiguration.Item[String] getter is often called by multiple threads without locking.
- Whether IConfiguration.GetSection(String) is allowed to create a new configuration section and make it visible in IConfiguration.GetChildren() even if IConfigurationSection.Value is not subsequently set.
- Whether IConfiguration.GetChildren().GetEnumerator() is allowed to return an IEnumerator<IConfigurationSection> that becomes invalid if configuration values are subsequently modified or new sections are created. This relates to thread safety as callers cannot easily lock to protect themselves against such invalidation.