런타임이 값을 사용하여 System.TimeSpan 형식 지정 작업에서 레거시 동작을 유지하는지 여부를 결정합니다.
<구성>
<런타임>
<TimeSpan_LegacyFormatMode>
문법
<TimeSpan_LegacyFormatMode
enabled="true|false"/>
Attributes와 Elements
다음 섹션에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.
특성
특성 | 설명 |
---|---|
enabled |
필수 속성입니다. 런타임에서 값과 함께 System.TimeSpan 레거시 서식 동작을 사용하는지 여부를 지정합니다. |
enabled 속성
가치 | 설명 |
---|---|
false |
런타임은 레거시 서식 동작을 복원하지 않습니다. |
true |
런타임은 레거시 서식 동작을 복원합니다. |
자식 요소
없음.
부모 요소
요소 | 설명 |
---|---|
configuration |
공용 언어 런타임 및 .NET Framework 응용 프로그램에서 사용하는 모든 구성 파일의 루트 요소입니다. |
runtime |
런타임 초기화 옵션에 대한 정보를 포함합니다. |
비고
.NET Framework 4부터 이 구조체는 System.TimeSpanIFormattable 인터페이스를 구현하고 표준 및 사용자 지정 형식 문자열을 사용하여 형식 지정 작업을 지원합니다. 구문 분석 메서드가 지원되지 않는 형식 지정자 또는 형식 문자열을 FormatException발견하면 .
이전 버전의 .NET Framework에서는 구조체가 TimeSpan 구현 IFormattable 되지 않았으며 형식 문자열을 지원하지 않았습니다. 그러나 많은 개발자들은 형식 문자열 집합을 지원한다고 잘못 가정 TimeSpan 하고 와 같은 String.Format메서드를 사용하여 복합 형식 지정 작업에 사용했습니다. 일반적으로 형식이 형식 문자열을 구현 IFormattable 하고 지원하는 경우 지원되지 않는 형식 문자열이 있는 형식 지정 메서드를 호출하면 일반적으로 FormatException. 그러나 가 를 구현IFormattable하지 않았기 때문에 TimeSpan 런타임은 형식 문자열을 무시하고 대신 메서드를 호출했습니다TimeSpan.ToString(). 즉, 형식 문자열이 형식 지정 작업에 영향을 주지 않았지만 그 존재로 인해 FormatException.
레거시 코드가 복합 형식 지정 메서드와 잘못된 형식 문자열을 전달하고 해당 코드를 다시 컴파일할 수 없는 경우 요소를 <TimeSpan_LegacyFormatMode>
사용하여 레거시 TimeSpan 동작을 복원할 수 있습니다. 이 요소의 true
특성을 로 설정하면 enabled
복합 형식 지정 메서드에서 가 아닌 가 호출 TimeSpan.ToString()TimeSpan.ToString(String, IFormatProvider)되고 a FormatException 가 throw되지 않습니다.
예시
다음 예제에서는 개체를 인스턴스화 TimeSpan 하고 지원되지 않는 표준 형식 문자열을 사용하여 메서드로 String.Format(String, Object) 형식을 지정하려고 시도합니다.
using System;
public class Example
{
public static void Main()
{
TimeSpan interval = new TimeSpan(12, 30, 45);
string output;
try {
output = String.Format("{0:r}", interval);
}
catch (FormatException) {
output = "Invalid Format";
}
Console.WriteLine(output);
}
}
Module Example
Public Sub Main()
Dim interval As New TimeSpan(12, 30, 45)
Dim output As String
Try
output = String.Format("{0:r}", interval)
Catch e As FormatException
output = "Invalid Format"
End Try
Console.WriteLine(output)
End Sub
End Module
.NET Framework 3.5 또는 이전 버전에서 예제를 실행하면 다음과 같은 출력이 표시됩니다.
12:30:45
이는 .NET Framework 4 이상 버전에서 예제를 실행하는 경우 출력과 현저히 다릅니다.
Invalid Format
그러나 다음 구성 파일을 예제의 디렉터리에 추가한 다음 .NET Framework 4 이상 버전에서 예제를 실행하는 경우 출력은 .NET Framework 3.5에서 실행될 때 예제에서 생성된 출력과 동일합니다.
<?xml version ="1.0"?>
<configuration>
<runtime>
<TimeSpan_LegacyFormatMode enabled="true"/>
</runtime>
</configuration>
참고하십시오
.NET