Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud Microsoft.Extensions.Configuration.Xml se používá ke čtení dokumentu XML, který obsahuje opakované elementy XML bez atributu Name , Configuration položky vytvořené s těmito opakovanými prvky teď mají index připojený ke své cestě konfigurace.
Verze byla představena
.NET 6
Předchozí chování
Zvažte následující fragmenty kódu XML, které zobrazují opakující se elementy bez rozlišujícího Name atributu.
<settings>
<Data ConnectionString="TestConnectionString" />
<Data Provider="MySql" />
</settings>
<configuration>
<Level1>
<Level2 Key1="Value1" />
<Level2 Key2="Value2" />
</Level1>
</configuration>
Konfigurace vytvořené z těchto souborů XML:
Data:ConnectionString = TestConnectionString
Data:Provider = MySql
a
Level1:Level2:Key1 = Value1
Level1:Level2:Key2 = Value2
v pořadí.
Nové chování
Konfigurace vytvořené ze souborů XML v předchozí části chování jsou nyní:
Data:0:ConnectionString = TestConnectionString
Data:1:Provider = MySql
a
Level1:Level2:0:Key1 = Value1
Level1:Level2:1:Key2 = Value2
v pořadí.
Typ zásadní změny
Tato změna může ovlivnit binární kompatibilitu.
Důvod změny
Tato změna byla zavedena tak, aby plně podporovala opakované elementy XML, které nemají Name atribut. Pouze předchozí chování umožňovalo opakovaným prvkům nastavovat jedinečné hodnoty (pomocí atributů nebo dílčích prvků). Pokud opakované elementy XML měly stejný atribut, byla vyvolána výjimka.
Doporučená akce
Chcete-li získat původní chování, můžete aktualizovat XML tak, aby sbalil dva atributy do stejného elementu. Například:
<configuration>
<Level1>
<Level2 Key1="Value1" Key2="Value2" />
</Level1>
</configuration>
Případně můžete kód aktualizovat tak, aby v klíčích očekával indexy (například 0, 1, 2):IConfiguration
configRoot.GetSection("Level1:Level2")
stane se
configRoot.GetSection("Level1:Level2:0")
Ovlivněná rozhraní API
- Microsoft.Extensions.Configuration.XmlConfigurationExtensions
- Microsoft.Extensions.Configuration.Xml.XmlStreamConfigurationProvider
- Microsoft.Extensions.Configuration.Xml.XmlConfigurationSource