dotnet / dotnet/dotnet-api-docs
Add more remarks for `Microsoft.Extensions.Configuration` in our docs
- Lingua principale
- C#
- Stelle
- 950
- Fork
- 1.7k
- Merge medio
- 2g 19h
- PR unite (30g)
- 52
Descrizione
Comment by @KalleOlaviNiemitalo in https://github.com/dotnet/runtime/issues/43869#issuecomment-1283492310:
---
While implementing [Microsoft.Extensions.Configuration.IConfiguration](https://learn.microsoft.com/dotnet/api/microsoft.extensions.configuration.iconfiguration?view=dotnet-plat-ext-7.0), 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]](https://learn.microsoft.com/dotnet/api/microsoft.extensions.configuration.iconfiguration.item?view=dotnet-plat-ext-7.0) getter is often called by multiple threads without locking.
- Whether [IConfiguration.GetSection(String)](https://learn.microsoft.com/dotnet/api/microsoft.extensions.configuration.iconfiguration.getsection?view=dotnet-plat-ext-7.0) is allowed to create a new configuration section and make it visible in [IConfiguration.GetChildren()](https://learn.microsoft.com/dotnet/api/microsoft.extensions.configuration.iconfiguration.getchildren?view=dotnet-plat-ext-7.0) even if [IConfigurationSection.Value](https://learn.microsoft.com/dotnet/api/microsoft.extensions.configuration.iconfigurationsection.value?view=dotnet-plat-ext-7.0) is not subsequently set.
- Whether [IConfiguration.GetChildren()](https://learn.microsoft.com/dotnet/api/microsoft.extensions.configuration.iconfiguration.getchildren?view=dotnet-plat-ext-7.0).GetEnumerator() is allowed to return an IEnumerator\ 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.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Iniziare esaminando la documentazione dell'API IConfiguration, IConfiguration.Item[String], GetSection(String), GetChildren() e IConfigurationSection.Value citata nell'issue e nella discussione collegata. Documentare il comportamento previsto in merito alla sicurezza dei thread, alla creazione delle sezioni e all'invalidazione degli enumeratori, con una formulazione che risponda a tutte e tre le domande.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- csharp
- Ambito
- documentation
- Tipo di issue
- Documentazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100