Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Microsoft.Extensions.Configuration.Xml özniteliği olmayan yinelenen XML öğeleri içeren bir XML belgesini okumak için kullanıldığında, bu yinelenen öğelerle oluşturulan Name girdilerinin yapılandırma yollarına artık bir dizin eklenmiştir.
Sürüm kullanıma sunulmuştur
.NET 6
Önceki davranış
Ayırt edici özniteliği olmayan yinelenen öğeleri gösteren aşağıdaki XML kod parçacıklarını Name göz önünde bulundurun.
<settings>
<Data ConnectionString="TestConnectionString" />
<Data Provider="MySql" />
</settings>
<configuration>
<Level1>
<Level2 Key1="Value1" />
<Level2 Key2="Value2" />
</Level1>
</configuration>
Bu XML dosyalarından oluşturulan yapılandırmalar şunlardı:
Data:ConnectionString = TestConnectionString
Data:Provider = MySql
ve
Level1:Level2:Key1 = Value1
Level1:Level2:Key2 = Value2
sırasıyla.
Yeni davranış
Önceki davranış bölümündeki XML dosyalarından oluşturulan yapılandırmalar şu şekildedir:
Data:0:ConnectionString = TestConnectionString
Data:1:Provider = MySql
ve
Level1:Level2:0:Key1 = Value1
Level1:Level2:1:Key2 = Value2
sırasıyla.
Kesinti yaratan değişiklik türü
Bu değişiklik ikili uyumluluğu etkileyebilir.
Değişiklik nedeni
Bu değişiklik, özniteliği olmayan Name yinelenen XML öğelerini tam olarak desteklemek için kullanıma sunulmuştur. Önceki davranış yalnızca yinelenen öğelerin benzersiz değerler ayarlamasına izin verilir (öznitelikler veya alt öğeler kullanılarak). Yinelenen XML öğeleri aynı özniteliğe sahipse bir hata oluştu.
Önerilen eylem
Özgün davranışı elde etmek için XML'nizi güncelleştirerek iki özniteliği aynı öğeye daraltabilirsiniz. Örneğin:
<configuration>
<Level1>
<Level2 Key1="Value1" Key2="Value2" />
</Level1>
</configuration>
Alternatif olarak kodunuzu, anahtarlar içinde 0, 1, 2 gibi dizinleri bekleyecek şekilde güncelleyebilirsiniz.
configRoot.GetSection("Level1:Level2")
Dönüşür
configRoot.GetSection("Level1:Level2:0")
Etkilenen API'ler
- Microsoft.Extensions.Configuration.XmlConfigurationExtensions
- Microsoft.Extensions.Configuration.Xml.XmlStreamConfigurationProvider
- Microsoft.Extensions.Configuration.Xml.XmlConfigurationSource