Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Bestimmt, ob die Runtime das Legacyverhalten bei Formatierungsvorgängen mit System.TimeSpan Werten beibehält.
<Konfiguration>
<Laufzeit>
<TimeSpan_LegacyFormatMode>
Syntax
<TimeSpan_LegacyFormatMode
enabled="true|false"/>
Attribute und Elemente
In den folgenden Abschnitten werden Attribute, untergeordnete Elemente und übergeordnete Elemente beschrieben.
Attribute
Merkmal | BESCHREIBUNG |
---|---|
enabled |
Erforderliches Attribut. Gibt an, ob die Runtime das Legacyformatierungsverhalten mit System.TimeSpan Werten verwendet. |
aktiviertes Attribut
Wert | BESCHREIBUNG |
---|---|
false |
Die Runtime stellt das Legacy-Formatierungsverhalten nicht wieder her. |
true |
Die Runtime stellt das Legacy-Formatierungsverhalten wieder her. |
Untergeordnete Elemente
Keiner.
Übergeordnete Elemente
Element | BESCHREIBUNG |
---|---|
configuration |
Das Stammelement in jeder Konfigurationsdatei, die von der Common Language Runtime und .NET Framework-Anwendungen verwendet wird. |
runtime |
Enthält Informationen zu den Optionen für die Laufzeitinitialisierung. |
Bemerkungen
Ab .NET Framework 4 implementiert die System.TimeSpan Struktur die IFormattable Schnittstelle und unterstützt Formatierungsvorgänge mit standardmäßigen und benutzerdefinierten Formatzeichenfolgen. Wenn eine Analysemethode auf einen nicht unterstützten Formatbezeichner oder eine nicht unterstützte Formatzeichenfolge trifft, löst sie eine .FormatException
In früheren Versionen von .NET Framework wurden Formatzeichenfolgen von der TimeSpan Struktur nicht implementiert IFormattable und nicht unterstützt. Viele Entwickler gingen jedoch fälschlicherweise davon aus, dass dies eine Reihe von Formatzeichenfolgen unterstützt, TimeSpan und verwendeten sie in zusammengesetzten Formatierungsvorgängen mit Methoden wie String.Format. Wenn ein Typ Formatzeichenfolgen implementiert IFormattable und unterstützt, lösen Aufrufe von Formatierungsmethoden mit nicht unterstützten Formatzeichenfolgen in der Regel eine FormatException. Da TimeSpan jedoch nicht implementiert IFormattablewurde, ignorierte die Laufzeit die Formatzeichenfolge und rief stattdessen die TimeSpan.ToString() Methode auf. Dies bedeutet, dass die Formatzeichenfolgen zwar keine Auswirkungen auf den Formatierungsvorgang hatten, ihr Vorhandensein jedoch nicht zu einer .FormatException
In Fällen, in denen Legacycode eine zusammengesetzte Formatierungsmethode und eine ungültige Formatzeichenfolge übergibt und dieser Code nicht neu kompiliert werden kann, können Sie das <TimeSpan_LegacyFormatMode>
Element verwenden, um das Legacyverhalten TimeSpan wiederherzustellen. Wenn Sie das enabled
Attribut dieses Elements auf true
festlegen, führt die zusammengesetzte Formatierungsmethode zu einem Aufruf von TimeSpan.ToString(String, IFormatProvider)TimeSpan.ToString() anstelle von , und a FormatException wird nicht ausgelöst.
Beispiel
Im folgenden Beispiel wird ein TimeSpan Objekt instanziiert und versucht, es mit der String.Format(String, Object) Methode zu formatieren, indem eine nicht unterstützte Standardformatzeichenfolge verwendet wird.
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
Wenn Sie das Beispiel in .NET Framework 3.5 oder in einer früheren Version ausführen, wird die folgende Ausgabe angezeigt:
12:30:45
Dies unterscheidet sich deutlich von der Ausgabe, wenn Sie das Beispiel in .NET Framework 4 oder höher ausführen:
Invalid Format
Wenn Sie jedoch die folgende Konfigurationsdatei zum Verzeichnis des Beispiels hinzufügen und das Beispiel dann in .NET Framework 4 oder höher ausführen, ist die Ausgabe identisch mit der Ausgabe, die vom Beispiel erzeugt wird, wenn es unter .NET Framework 3.5 ausgeführt wird.
<?xml version ="1.0"?>
<configuration>
<runtime>
<TimeSpan_LegacyFormatMode enabled="true"/>
</runtime>
</configuration>