<TimeSpan_LegacyFormatMode > 要素<TimeSpan_LegacyFormatMode> Element

ランタイムが書式設定の操作で従来の動作を保持するかどうかを判断しますSystem.TimeSpan値。Determines whether the runtime preserves legacy behavior in formatting operations with System.TimeSpan values.

<configuration><configuration>\ <runtime><runtime>\ <TimeSpan_LegacyFormatMode><TimeSpan_LegacyFormatMode>

構文Syntax

<TimeSpan_LegacyFormatMode
   enabled="true|false"/>

属性および要素Attributes and Elements

以降のセクションでは、属性、子要素、および親要素について説明します。The following sections describe attributes, child elements, and parent elements.

属性Attributes

属性Attribute 説明Description
enabled 必須の属性です。Required attribute.

ランタイムがで従来の書式設定動作を使用しているかどうかを指定します。System.TimeSpan値。Specifies whether the runtime uses legacy formatting behavior with System.TimeSpan values.

enabled 属性enabled Attribute

Value 説明Description
false ランタイムは、従来の書式設定動作を復元できません。The runtime does not restore legacy formatting behavior.
true ランタイムは、従来の書式設定動作を復元します。The runtime restores legacy formatting behavior.

子要素Child Elements

なし。None.

親要素Parent Elements

要素Element 説明Description
configuration 共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルのルート要素です。The root element in every configuration file used by the common language runtime and .NET Framework applications.
runtime ランタイム初期化オプションに関する情報を含んでいます。Contains information about runtime initialization options.

RemarksRemarks

.NET Framework 4 以降で、 System.TimeSpan implements 構造体、IFormattableインターフェイスと書式設定を標準とカスタム書式指定文字列の操作をサポートしています。Starting with the .NET Framework 4, the System.TimeSpan structure implements the IFormattable interface and supports formatting operations with standard and custom format strings. 解析方法には、サポートされていない書式指定子または書式指定文字列が検出されると、スロー、FormatExceptionします。If a parsing method encounters an unsupported format specifier or format string, it throws a FormatException.

.NET Framework の以前のバージョンで、TimeSpan構造を実装しませんでしたIFormattableと書式指定文字列をサポートしていませんでした。In previous versions of the .NET Framework, the TimeSpan structure did not implement IFormattable and did not support format strings. ただし、多くの開発者誤っていることを前提TimeSpan書式指定文字列のセットをサポートして、それらを使用複合書式設定操作などのメソッドで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. 通常、型を実装する場合IFormattable書式指定文字列、文字列は、通常はスローをサポートされていない形式で書式指定メソッドの呼び出しをサポートしていると、FormatExceptionします。Ordinarily, if a type implements IFormattable and supports format strings, calls to formatting methods with unsupported format strings usually throw a FormatException. ただし、ためTimeSpanを実装しませんでしたIFormattable、ランタイムは、書式指定文字列を無視し、代わりに呼び出されます、TimeSpan.ToString()メソッド。However, because TimeSpan did not implement IFormattable, the runtime ignored the format string and instead called the TimeSpan.ToString() method. これは、書式指定文字列に書式設定操作に影響はありません、その存在が発生しないことを意味するFormatExceptionします。This means that, although the format strings had no effect on the formatting operation, their presence did not result in a FormatException.

レガシ コードに渡します複合メソッドと、無効な形式の文字列の書式を指定し、そのコードを再コンパイルできない場合は、使用することができます、<TimeSpan_LegacyFormatMode>要素、従来の復元を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. 設定すると、enabledをこの要素の属性true複合への呼び出しでメソッドの結果を書式設定、TimeSpan.ToString()なくTimeSpan.ToString(String, IFormatProvider)、および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.

Example

次の例では、インスタンス化、TimeSpanオブジェクトとそれをフォーマットしよう、String.Format(String, Object)サポートされていない標準書式指定文字列を使用してメソッド。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

.NET Framework 3.5 または以前のバージョンに例を実行するときに、次の出力が表示されます。When you run the example on the .NET Framework 3.5 or on an earlier version, it displays the following output:

12:30:45

これに対し大幅出力から、.NET Framework 4 またはそれ以降のバージョンで、例を実行する場合。This differs markedly from the output if you run the example on the .NET Framework 4 or later version:

Invalid Format

ただし、例のディレクトリに次の構成ファイルを追加し、.NET Framework 4 またはそれ以降のバージョンの例を実行すると、出力は .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>

関連項目See also