<> TimeSpan_LegacyFormatMode Öğesi
Çalışma zamanının değerlerle System.TimeSpan biçimlendirme işlemlerinde eski davranışı koruyup korumadığını belirler.
<Yapılandırma>
<Çalışma zamanı>
<TimeSpan_LegacyFormatMode>
Syntax
<TimeSpan_LegacyFormatMode
enabled="true|false"/>
Öznitelikler ve Öğeler
Öznitelikler, alt ve üst öğeler aşağıdaki bölümlerde açıklanmaktadır.
Öznitelikler
Öznitelik | Açıklama |
---|---|
enabled |
Gerekli öznitelik. Çalışma zamanının değerlerle System.TimeSpan eski biçimlendirme davranışını kullanıp kullanmadığını belirtir. |
etkin Öznitelik
Değer | Açıklama |
---|---|
false |
Çalışma zamanı eski biçimlendirme davranışını geri yüklemez. |
true |
Çalışma zamanı eski biçimlendirme davranışını geri yükler. |
Alt Öğeler
Yok.
Üst Öğeler
Öğe | Açıklama |
---|---|
configuration |
Her yapılandırma dosyasında yer alan ve ortak dil çalışma zamanı ve .NET Framework uygulamaları tarafından kullanılan kök öğe. |
runtime |
Çalışma zamanı başlatma seçenekleri hakkında bilgi içerir. |
Açıklamalar
.NET Framework 4'den başlayarak, System.TimeSpan yapı arabirimini uygular IFormattable ve standart ve özel biçim dizeleriyle biçimlendirme işlemlerini destekler. Ayrıştırma yöntemi desteklenmeyen biçim tanımlayıcısı veya biçim dizesiyle karşılaşırsa, bir FormatExceptionoluşturur.
.NET Framework TimeSpan önceki sürümlerinde yapı, biçim dizelerini uygulamadı IFormattable ve desteklemedi. Ancak, birçok geliştirici yanlışlıkla bir dizi biçim dizesini desteklediğini ve bunları gibi String.Formatyöntemlerle bileşik biçimlendirme işlemlerinde kullandığını varsayarTimeSpan. Normalde, bir tür biçim dizelerini IFormattable uygular ve desteklerse, desteklenmeyen biçim dizelerine sahip biçimlendirme yöntemlerine yapılan çağrılar genellikle bir FormatExceptionoluşturur. Ancak, TimeSpan uygulamadığından IFormattableçalışma zamanı biçim dizesini yoksaydı ve bunun yerine yöntemini çağırdı TimeSpan.ToString() . Bu, biçim dizelerinin biçimlendirme işlemi üzerinde hiçbir etkisi olmasa da, iletişim durumlarının bir FormatExceptionile sonuçlanmadığı anlamına gelir.
Eski kodun bileşik biçimlendirme yöntemini ve geçersiz bir biçim dizesini geçtiği ve bu kodun yeniden derlenemediği durumlarda, eski TimeSpan davranışı geri yüklemek için öğesini kullanabilirsiniz<TimeSpan_LegacyFormatMode>
. Bu öğenin özniteliğini olarak ayarladığınızda enabled
bileşik biçimlendirme yöntemi yerine çağrısıyla TimeSpan.ToString(String, IFormatProvider)TimeSpan.ToString() sonuçlanır ve bir FormatException atılmaz.true
Örnek
Aşağıdaki örnek bir TimeSpan nesnenin örneğini oluşturur ve desteklenmeyen String.Format(String, Object) bir standart biçim dizesi kullanarak bunu yöntemiyle biçimlendirmeye çalışır.
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
Örneği .NET Framework 3.5 veya önceki bir sürümde çalıştırdığınızda, aşağıdaki çıktı görüntülenir:
12:30:45
Örneği .NET Framework 4 veya sonraki bir sürümde çalıştırırsanız bu, çıkıştan belirgin olarak farklıdır:
Invalid Format
Ancak, aşağıdaki yapılandırma dosyasını örneğin dizinine ekleyip örneği .NET Framework 4 veya sonraki bir sürümde çalıştırırsanız çıktı, .NET Framework 3.5'te çalıştırıldığında örnek tarafından üretilen çıktıyla aynıdır.
<?xml version ="1.0"?>
<configuration>
<runtime>
<TimeSpan_LegacyFormatMode enabled="true"/>
</runtime>
</configuration>