<TimeSpan_LegacyFormatMode >, elemento<TimeSpan_LegacyFormatMode> Element

Determina si el tiempo de ejecución conserva el comportamiento heredado en operaciones System.TimeSpan de formato con valores.Determines whether the runtime preserves legacy behavior in formatting operations with System.TimeSpan values.

<configuration> <configuration>
   <> en tiempo de ejecución  <runtime>
     <> TimeSpan_LegacyFormatMode    <TimeSpan_LegacyFormatMode>

SintaxisSyntax

<TimeSpan_LegacyFormatMode
   enabled="true|false"/>

Atributos y elementosAttributes and Elements

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.The following sections describe attributes, child elements, and parent elements.

AtributosAttributes

AtributoAttribute DESCRIPCIÓNDescription
enabled Atributo necesario.Required attribute.

Especifica si el Runtime usa el comportamiento de formato System.TimeSpan heredado con valores.Specifies whether the runtime uses legacy formatting behavior with System.TimeSpan values.

Atributo enabledenabled Attribute

ValorValue DESCRIPCIÓNDescription
false El motor en tiempo de ejecución no restaura el comportamiento de formato heredado.The runtime does not restore legacy formatting behavior.
true El motor en tiempo de ejecución restaura el comportamiento de formato heredado.The runtime restores legacy formatting behavior.

Elementos secundariosChild Elements

Ninguno.None.

Elementos primariosParent Elements

ElementoElement DESCRIPCIÓNDescription
configuration Elemento raíz de cada archivo de configuración usado por las aplicaciones de Common Language Runtime y .NET Framework.The root element in every configuration file used by the common language runtime and .NET Framework applications.
runtime Contiene información sobre las opciones de inicialización del motor en tiempo de ejecución.Contains information about runtime initialization options.

ComentariosRemarks

A partir de la .NET Framework 4, System.TimeSpan la estructura implementa la IFormattable interfaz y admite operaciones de formato con cadenas de formato estándar y personalizadas.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 un método de análisis encuentra un especificador de formato no compatible o una cadena de formato, produce una FormatExceptionexcepción.If a parsing method encounters an unsupported format specifier or format string, it throws a FormatException.

En versiones anteriores del .NET Framework, la TimeSpan estructura no implementaba IFormattable y no admitía cadenas de formato.In previous versions of the .NET Framework, the TimeSpan structure did not implement IFormattable and did not support format strings. Sin embargo, muchos desarrolladores suponían erróneamente que TimeSpan admiten un conjunto de cadenas de formato y las usaban en operaciones de formato compuesto String.Formatcon métodos como.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. Normalmente, si un tipo implementa IFormattable y admite cadenas de formato, las llamadas a métodos de formato con cadenas de formato no admitidas normalmente producen una FormatExceptionexcepción.Ordinarily, if a type implements IFormattable and supports format strings, calls to formatting methods with unsupported format strings usually throw a FormatException. Sin embargo, TimeSpan dado que no IFormattableimplementó, el tiempo de ejecución omitió la cadena de TimeSpan.ToString() formato y, en su lugar, llamó al método.However, because TimeSpan did not implement IFormattable, the runtime ignored the format string and instead called the TimeSpan.ToString() method. Esto significa que, aunque las cadenas de formato no tenían ningún efecto en la operación de formato, su presencia no da FormatExceptioncomo resultado una.This means that, although the format strings had no effect on the formatting operation, their presence did not result in a FormatException.

En los casos en que el código heredado pasa un método de formato compuesto y una cadena de formato no válida, y ese código no se puede <TimeSpan_LegacyFormatMode> volver a compilar TimeSpan , puede usar el elemento para restaurar el comportamiento heredado.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. Al establecer enabled el atributo de este elemento en TimeSpan.ToString() true, el método de formato compuesto produce una llamada a en lugar de TimeSpan.ToString(String, IFormatProvider), y no FormatException se produce una excepción.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.

EjemploExample

En el ejemplo siguiente se TimeSpan String.Format(String, Object) crea una instancia de un objeto y se intenta dar formato al método mediante una cadena de formato estándar no compatible.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

Al ejecutar el ejemplo en el .NET Framework 3,5 o en una versión anterior, se muestra el siguiente resultado:When you run the example on the .NET Framework 3.5 or on an earlier version, it displays the following output:

12:30:45

Esto difiere notablemente de la salida si ejecuta el ejemplo en el .NET Framework 4 o una versión posterior:This differs markedly from the output if you run the example on the .NET Framework 4 or later version:

Invalid Format

Sin embargo, si agrega el archivo de configuración siguiente al directorio del ejemplo y, a continuación, ejecuta el ejemplo en el .NET Framework 4 o una versión posterior, la salida es idéntica a la generada por el ejemplo cuando se ejecuta en .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>

Vea tambiénSee also