<TimeSpan_LegacyFormatMode >, élément<TimeSpan_LegacyFormatMode> Element

Détermine si le runtime conserve le comportement hérité dans les opérations de mise en System.TimeSpan forme avec des valeurs.Determines whether the runtime preserves legacy behavior in formatting operations with System.TimeSpan values.

<configuration> <configuration>
   <> d’exécution  <runtime>
     <TimeSpan_LegacyFormatMode >    <TimeSpan_LegacyFormatMode>

SyntaxeSyntax

<TimeSpan_LegacyFormatMode
   enabled="true|false"/>

Attributs et élémentsAttributes and Elements

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.The following sections describe attributes, child elements, and parent elements.

AttributsAttributes

AttributAttribute DescriptionDescription
enabled Attribut requis.Required attribute.

Spécifie si le runtime utilise le comportement de mise System.TimeSpan en forme hérité avec les valeurs.Specifies whether the runtime uses legacy formatting behavior with System.TimeSpan values.

Attribut enabledenabled Attribute

ValeurValue DescriptionDescription
false Le runtime ne restaure pas le comportement de mise en forme hérité.The runtime does not restore legacy formatting behavior.
true Le runtime restaure le comportement de mise en forme hérité.The runtime restores legacy formatting behavior.

Éléments enfantsChild Elements

Aucun.None.

Éléments parentsParent Elements

ÉlémentElement DescriptionDescription
configuration Élément racine de chaque fichier de configuration utilisé par le Common Language Runtime et les applications .NET Framework.The root element in every configuration file used by the common language runtime and .NET Framework applications.
runtime Contient des informations sur les options d'initialisation du runtime.Contains information about runtime initialization options.

NotesRemarks

À partir du .NET Framework 4, la System.TimeSpan structure implémente l' IFormattable interface et prend en charge les opérations de mise en forme avec des chaînes de format standard et personnalisées.Starting with the .NET Framework 4, the System.TimeSpan structure implements the IFormattable interface and supports formatting operations with standard and custom format strings. Si une méthode d’analyse rencontre un spécificateur de format ou une chaîne de format non pris en charge, elle lève une FormatException.If a parsing method encounters an unsupported format specifier or format string, it throws a FormatException.

Dans les versions précédentes du .NET Framework, la TimeSpan structure n’a pas IFormattable implémenté et ne prenait pas en charge les chaînes de format.In previous versions of the .NET Framework, the TimeSpan structure did not implement IFormattable and did not support format strings. Toutefois, de nombreux développeurs ont pris par TimeSpan erreur pris en charge un ensemble de chaînes de format et les utilisaient dans des opérations de mise en forme composite avec des méthodes telles que. String.FormatHowever, 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. En règle générale, si un type implémente IFormattable et prend en charge les chaînes de format, les appels aux méthodes de mise en forme avec des chaînes de format non prises en charge FormatExceptionlèvent généralement.Ordinarily, if a type implements IFormattable and supports format strings, calls to formatting methods with unsupported format strings usually throw a FormatException. Toutefois, étant TimeSpan donné que n' IFormattablea pas implémenté, le runtime a ignoré la chaîne de TimeSpan.ToString() format et a à la place appelé la méthode.However, because TimeSpan did not implement IFormattable, the runtime ignored the format string and instead called the TimeSpan.ToString() method. Cela signifie que, bien que les chaînes de format n’aient aucun effet sur l’opération de mise en forme, leur présence FormatExceptionn’a pas entraîné de.This means that, although the format strings had no effect on the formatting operation, their presence did not result in a FormatException.

Dans les cas où le code hérité passe une méthode de mise en forme composite et une chaîne de format non valide, et que ce code ne peut <TimeSpan_LegacyFormatMode> pas être recompilé, TimeSpan vous pouvez utiliser l’élément pour restaurer le comportement hérité.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. Lorsque vous affectez enabled à truel’attribut de cet élément la valeur, la méthode de mise en forme composite entraîne TimeSpan.ToString(String, IFormatProvider)un appel à FormatException TimeSpan.ToString() plutôt que, et une n’est pas levée.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.

ExempleExample

L’exemple suivant instancie un TimeSpan objet et tente de le mettre en forme String.Format(String, Object) avec la méthode à l’aide d’une chaîne de format standard non prise en charge.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

Lorsque vous exécutez l’exemple sur la .NET Framework 3,5 ou sur une version antérieure, la sortie suivante s’affiche :When you run the example on the .NET Framework 3.5 or on an earlier version, it displays the following output:

12:30:45

Cela diffère de façon marquée de la sortie si vous exécutez l’exemple sur le .NET Framework 4 ou version ultérieure :This differs markedly from the output if you run the example on the .NET Framework 4 or later version:

Invalid Format

Toutefois, si vous ajoutez le fichier de configuration suivant au répertoire de l’exemple, puis exécutez l’exemple sur le .NET Framework 4 ou une version ultérieure, la sortie est identique à celle produite par l’exemple lorsqu’elle est exécutée sur .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>

Voir aussiSee also