Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Określa, czy środowisko wykonawcze zachowuje starsze zachowanie w operacjach formatowania z System.TimeSpan wartościami.
<konfiguracja>
<Środowiska wykonawczego>
<TimeSpan_LegacyFormatMode>
Składnia
<TimeSpan_LegacyFormatMode
enabled="true|false"/>
Atrybuty i elementy
W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.
Atrybuty
Atrybut | Opis |
---|---|
enabled |
Wymagany atrybut. Określa, czy środowisko wykonawcze używa starszego zachowania formatowania z System.TimeSpan wartościami. |
enabled Atrybut
Wartość | Opis |
---|---|
false |
Środowisko wykonawcze nie przywraca starszego zachowania formatowania. |
true |
Środowisko wykonawcze przywraca starsze zachowanie formatowania. |
Elementy podrzędne
Żaden.
Elementy nadrzędne
Składnik | Opis |
---|---|
configuration |
Element główny w każdym pliku konfiguracyjnym używanym przez środowisko uruchomieniowe języka wspólnego i aplikacje .NET Framework. |
runtime |
Zawiera informacje o opcjach inicjalizacji środowiska wykonawczego. |
Uwagi
Począwszy od .NET Framework 4, System.TimeSpan struktura implementuje IFormattable interfejs i obsługuje operacje formatowania za pomocą standardowych i niestandardowych ciągów formatu. Jeśli metoda analizowania napotka nieobsługiwany specyfikator formatu lub ciąg formatu, zgłasza plik FormatException.
W poprzednich wersjach .NET Framework TimeSpan struktura nie implementowała IFormattable i nie obsługiwała ciągów formatu. Jednak wielu programistów błędnie założyło, że TimeSpan obsługuje zestaw ciągów formatu i używało ich w operacjach formatowania złożonego za pomocą metod takich jak String.Format. Zwykle, jeśli typ implementuje IFormattable i obsługuje ciągi formatu, wywołania metod formatowania z nieobsługiwanymi ciągami formatu zwykle zgłaszają .FormatException Jednak ze względu na to, że TimeSpan nie zaimplementowano IFormattable, środowisko wykonawcze zignorowało ciąg formatu i zamiast tego wywołało metodę TimeSpan.ToString() . Oznacza to, że chociaż ciągi formatu nie miały wpływu na operację formatowania, ich obecność nie spowodowała powstania FormatExceptionpliku .
W przypadkach, w których starszy kod przekazuje metodę formatowania złożonego i nieprawidłowy ciąg formatu, a tego kodu nie można ponownie skompilować, można użyć tego <TimeSpan_LegacyFormatMode>
elementu do przywrócenia starszego TimeSpan zachowania. Po ustawieniu atrybutu enabled
tego elementu na true
, metoda formatowania złożonego powoduje wywołanie metody TimeSpan.ToString() do, a nie TimeSpan.ToString(String, IFormatProvider), a nie FormatException jest zgłaszane.
Przykład
Poniższy przykład tworzy wystąpienie TimeSpan obiektu i próbuje sformatować go za String.Format(String, Object) pomocą metody przy użyciu nieobsługiwanego ciągu formatu standardowego.
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
Po uruchomieniu przykładu w .NET Framework 3.5 lub starszej wersji zostaną wyświetlone następujące dane wyjściowe:
12:30:45
Różni się to znacznie od danych wyjściowych, jeśli uruchomisz przykład w .NET Framework 4 lub nowszej wersji:
Invalid Format
Jeśli jednak dodasz następujący plik konfiguracji do katalogu przykładu, a następnie uruchomisz przykład w .NET Framework 4 lub nowszej wersji, dane wyjściowe będą identyczne z danymi wyjściowymi generowanymi przez przykład po uruchomieniu go w .NET Framework 3.5.
<?xml version ="1.0"?>
<configuration>
<runtime>
<TimeSpan_LegacyFormatMode enabled="true"/>
</runtime>
</configuration>