<> TimeSpan_LegacyFormatMode elem
Meghatározza, hogy a futtatókörnyezet megőrzi-e az örökölt viselkedést az értékekkel rendelkező System.TimeSpan formázási műveletekben.
<Konfigurációs>
<Runtime>
<TimeSpan_LegacyFormatMode>
Syntax
<TimeSpan_LegacyFormatMode
enabled="true|false"/>
Attribútumok és elemek
Az alábbi szakaszok az attribútumokat, a gyermekelemeket és a szülőelemeket ismertetik.
Attribútumok
Attribútum | Leírás |
---|---|
enabled |
Kötelező attribútum. Meghatározza, hogy a futtatókörnyezet örökölt formázási viselkedést használ-e értékekkel System.TimeSpan . |
enabled attribute
Érték | Leírás |
---|---|
false |
A futtatókörnyezet nem állítja vissza az örökölt formázási viselkedést. |
true |
A futtatókörnyezet visszaállítja az örökölt formázási viselkedést. |
Gyermekelemek
Nincsenek.
Szülőelemek
Elem | Leírás |
---|---|
configuration |
A közös nyelvi futtatókörnyezet és .NET-keretrendszer alkalmazások által használt összes konfigurációs fájl gyökéreleme. |
runtime |
Információkat tartalmaz a futtatókörnyezet inicializálási beállításairól. |
Megjegyzések
A .NET-keretrendszer 4-től kezdve a System.TimeSpan struktúra implementálja a felületet, és támogatja a IFormattable formázási műveleteket standard és egyéni formázási sztringekkel. Ha egy elemzési módszer nem támogatott formátumkijelölővel vagy formázási sztringgel találkozik, a függvény egy FormatExceptionértéket ad.
A .NET-keretrendszer korábbi verzióiban a TimeSpan struktúra nem implementálva IFormattable lett, és nem támogatja a formázási sztringeket. Sok fejlesztő azonban tévesen azt feltételezte, hogy TimeSpan támogatja a formázási sztringek készletét, és olyan módszerekkel végzett összetett formázási műveletekben használta őket, mint a String.Format. Általában, ha egy típus implementálja és támogatja a formázási IFormattable sztringeket, a nem támogatott formázási sztringekkel rendelkező formázási metódusok általában egy FormatExceptionértéket adnak. TimeSpan Mivel azonban nem implementáltaIFormattable, a futtatókörnyezet figyelmen kívül hagyta a formátumsztringet, és inkább metódusnak nevezte.TimeSpan.ToString() Ez azt jelenti, hogy bár a formázási sztringek nem voltak hatással a formázási műveletre, jelenlétük nem eredményezett FormatException.
Azokban az esetekben, amikor az örökölt kód egy összetett formázási módszert és egy érvénytelen formázási sztringet ad át, és a kód nem fordítható újra, az <TimeSpan_LegacyFormatMode>
elem használatával visszaállíthatja az örökölt viselkedést TimeSpan . Amikor ennek az elemnek az enabled
attribútumát a értékre true
állítja, az összetett formázási módszer a helyett a hívását TimeSpan.ToString()TimeSpan.ToString(String, IFormatProvider)eredményezi, és az a FormatException nem lesz eldobva.
Példa
Az alábbi példa egy TimeSpan objektumot példányosít, és megkísérli formázni a String.Format(String, Object) metódussal egy nem támogatott szabványos formátumsztring használatával.
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
Amikor a példát a .NET-keretrendszer 3.5-ös vagy korábbi verzióján futtatja, a következő kimenet jelenik meg:
12:30:45
Ez jelentősen eltér a kimenettől, ha a példát a .NET-keretrendszer 4-es vagy újabb verziójában futtatja:
Invalid Format
Ha azonban hozzáadja a következő konfigurációs fájlt a példa könyvtárához, majd futtatja a példát a .NET-keretrendszer 4-es vagy újabb verzióban, a kimenet megegyezik a példában a 3.5-ös .NET-keretrendszer futtatáskor előállított kimenettel.
<?xml version ="1.0"?>
<configuration>
<runtime>
<TimeSpan_LegacyFormatMode enabled="true"/>
</runtime>
</configuration>