다음을 통해 공유


반복되는 XML 요소에 인덱스가 포함됨

Microsoft.Extensions.Configuration.XmlName 특성 없이 반복되는 XML 요소가 있는 XML 문서를 읽는 데 사용되는 경우 이러한 반복되는 요소로 만든 Configuration 항목은 이제 구성 경로에 인덱스가 추가됩니다.

도입된 버전

.NET 6

이전 동작

구분하는 Name 특성 없이 반복되는 요소를 표시하는 다음 XML 조각을 생각해 보겠습니다.

<settings>
  <Data ConnectionString="TestConnectionString" />
  <Data Provider="MySql" />
</settings>
<configuration>
    <Level1>
        <Level2 Key1="Value1" />
        <Level2 Key2="Value2" />
    </Level1>
</configuration>

이러한 XML 파일에서 만든 구성은 다음과 같습니다.

Data:ConnectionString = TestConnectionString
Data:Provider = MySql

Level1:Level2:Key1 = Value1
Level1:Level2:Key2 = Value2

각각.

새 동작

이전 동작 섹션의 XML 파일에서 만든 구성은 이제 다음과 같습니다.

Data:0:ConnectionString = TestConnectionString
Data:1:Provider = MySql

Level1:Level2:0:Key1 = Value1
Level1:Level2:1:Key2 = Value2

각각.

호환성이 손상되는 변경의 형식

이 변경은 이진 호환성에 영향을 줄 수 있습니다.

변경 이유

이 변경 내용은 Name 특성이 없는 반복되는 XML 요소를 완전히 지원하기 위해 도입되었습니다. 이전 동작은 반복되는 요소에서만 고유 값을 설정하도록 허용했습니다(특성 또는 하위 요소 사용). 반복되는 XML 요소에 동일한 특성이 있는 경우 예외가 throw되었습니다.

원래 동작으로 되돌리려면 XML을 업데이트하여 두 특성을 동일한 요소로 축소할 수 있습니다. 다음은 그 예입니다.

<configuration>
    <Level1>
        <Level2 Key1="Value1" Key2="Value2" />
    </Level1>
</configuration>

또는 IConfiguration 키에서 인덱스(예: 0, 1, 2)를 예상하도록 코드를 업데이트할 수 있습니다.

configRoot.GetSection("Level1:Level2")

다음이 됩니다.

configRoot.GetSection("Level1:Level2:0")

영향을 받는 API

참고 항목