<TimeSpan_LegacyFormatMode elemento ><TimeSpan_LegacyFormatMode> Element

Determina se il runtime conserva il comportamento legacy nelle operazioni di formattazione con valori System.TimeSpan.Determines whether the runtime preserves legacy behavior in formatting operations with System.TimeSpan values.

<configuration> <configuration>
    <runtime >   <runtime>
   **  <TimeSpan_LegacyFormatMode >**    <TimeSpan_LegacyFormatMode>

SintassiSyntax

<TimeSpan_LegacyFormatMode
   enabled="true|false"/>

Attributi ed elementiAttributes and Elements

Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.The following sections describe attributes, child elements, and parent elements.

AttributiAttributes

AttributoAttribute DescrizioneDescription
enabled Attributo obbligatorio.Required attribute.

Specifica se il runtime usa il comportamento di formattazione legacy con valori System.TimeSpan.Specifies whether the runtime uses legacy formatting behavior with System.TimeSpan values.

Attributo enabledenabled Attribute

ValueValue DescrizioneDescription
false Il runtime non ripristina il comportamento di formattazione legacy.The runtime does not restore legacy formatting behavior.
true Il runtime ripristina il comportamento di formattazione legacy.The runtime restores legacy formatting behavior.

Elementi figlioChild Elements

Nessuna.None.

Elementi padreParent Elements

ElementoElement DescrizioneDescription
configuration Elemento radice in ciascun file di configurazione usato in Common Language Runtime e nelle applicazioni .NET Framework.The root element in every configuration file used by the common language runtime and .NET Framework applications.
runtime Contiene informazioni sulle opzioni di inizializzazione in fase di esecuzione.Contains information about runtime initialization options.

NoteRemarks

A partire da .NET Framework 4, la struttura System.TimeSpan implementa l'interfaccia IFormattable e supporta le operazioni di formattazione con stringhe di formato standard e personalizzate.Starting with the .NET Framework 4, the System.TimeSpan structure implements the IFormattable interface and supports formatting operations with standard and custom format strings. Se un metodo di analisi rileva un identificatore di formato non supportato o una stringa di formato, viene generata un'FormatException.If a parsing method encounters an unsupported format specifier or format string, it throws a FormatException.

Nelle versioni precedenti del .NET Framework la struttura TimeSpan non implementava IFormattable e non supportava le stringhe di formato.In previous versions of the .NET Framework, the TimeSpan structure did not implement IFormattable and did not support format strings. Tuttavia, molti sviluppatori presumevano erroneamente che TimeSpan supportasse un set di stringhe di formato e le usavaro nelle operazioni di formattazione composita con metodi come String.Format.However, many developers mistakenly assumed that TimeSpan did support a set of format strings and used them in composite formatting operations with methods such as String.Format. In genere, se un tipo implementa IFormattable e supporta le stringhe di formato, le chiamate ai metodi di formattazione con stringhe di formato non supportate in genere generano una FormatException.Ordinarily, if a type implements IFormattable and supports format strings, calls to formatting methods with unsupported format strings usually throw a FormatException. Tuttavia, poiché TimeSpan non implementa IFormattable, il runtime ignora la stringa di formato e chiama invece il metodo TimeSpan.ToString().However, because TimeSpan did not implement IFormattable, the runtime ignored the format string and instead called the TimeSpan.ToString() method. Ciò significa che, anche se le stringhe di formato non hanno effetto sull'operazione di formattazione, la loro presenza non ha restituito un FormatException.This means that, although the format strings had no effect on the formatting operation, their presence did not result in a FormatException.

Per i casi in cui il codice legacy passa un metodo di formattazione composita e una stringa di formato non valida e tale codice non può essere ricompilato, è possibile usare l'elemento <TimeSpan_LegacyFormatMode> per ripristinare il comportamento di TimeSpan legacy.For cases in which legacy code passes a composite formatting method and an invalid format string, and that code cannot be recompiled, you can use the <TimeSpan_LegacyFormatMode> element to restore the legacy TimeSpan behavior. Quando si imposta l'attributo enabled di questo elemento su true, il metodo di formattazione composita genera una chiamata a TimeSpan.ToString() anziché TimeSpan.ToString(String, IFormatProvider)e non viene generata un'FormatException.When you set the enabled attribute of this element to true, the composite formatting method results in a call to TimeSpan.ToString() rather than TimeSpan.ToString(String, IFormatProvider), and a FormatException is not thrown.

EsempioExample

Nell'esempio seguente viene creata un'istanza di un oggetto TimeSpan e viene effettuato un tentativo di formattarlo con il metodo String.Format(String, Object) utilizzando una stringa di formato standard non supportata.The following example instantiates a TimeSpan object and attempts to format it with the String.Format(String, Object) method by using an unsupported standard format string.

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

Quando si esegue l'esempio in .NET Framework 3,5 o in una versione precedente, viene visualizzato l'output seguente:When you run the example on the .NET Framework 3.5 or on an earlier version, it displays the following output:

12:30:45

Questa operazione è notevolmente diversa rispetto all'output se si esegue l'esempio in .NET Framework 4 o versione successiva:This differs markedly from the output if you run the example on the .NET Framework 4 or later version:

Invalid Format

Tuttavia, se si aggiunge il file di configurazione seguente alla directory dell'esempio e quindi si esegue l'esempio in .NET Framework 4 o versione successiva, l'output sarà identico a quello prodotto dall'esempio quando viene eseguito in .NET Framework 3,5.However, if you add the following configuration file to the example's directory and then run the example on the .NET Framework 4 or later version, the output is identical to that produced by the example when it is run on .NET Framework 3.5.

<?xml version ="1.0"?>
<configuration>
   <runtime>
      <TimeSpan_LegacyFormatMode enabled="true"/>
   </runtime>
</configuration>

Vedere ancheSee also