<TimeSpan_LegacyFormatMode> (Elemento)<TimeSpan_LegacyFormatMode> Element

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

<configuration>
  <runtime>
    <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 heredado con System.TimeSpan valores.Specifies whether the runtime uses legacy formatting behavior with System.TimeSpan values.

Atributo enabledenabled Attribute

ValueValue 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, la System.TimeSpan 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 excepción FormatException .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 con métodos como 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. 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 excepción FormatException .Ordinarily, if a type implements IFormattable and supports format strings, calls to formatting methods with unsupported format strings usually throw a FormatException. Sin embargo, dado TimeSpan que no implementó IFormattable , el tiempo de ejecución omitió la cadena de formato y, en su lugar, llamó al TimeSpan.ToString() 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 como resultado una FormatException .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 volver a compilar, puede usar el <TimeSpan_LegacyFormatMode> elemento para restaurar el comportamiento heredado TimeSpan .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 el enabled atributo de este elemento en true , el método de formato compuesto produce una llamada a en TimeSpan.ToString() lugar de TimeSpan.ToString(String, IFormatProvider) , y FormatException no 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 crea una instancia de un TimeSpan objeto y se intenta dar formato al String.Format(String, Object) 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>

Consulte tambiénSee also