InfiniteTimeSpanConverter クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
文字列と標準の無限 TimeSpan 値との間の変換を行います。
public ref class InfiniteTimeSpanConverter sealed : System::Configuration::ConfigurationConverterBase
public sealed class InfiniteTimeSpanConverter : System.Configuration.ConfigurationConverterBase
type InfiniteTimeSpanConverter = class
inherit ConfigurationConverterBase
Public NotInheritable Class InfiniteTimeSpanConverter
Inherits ConfigurationConverterBase
- 継承
例
次のコード例は、 クラスを使用するカスタム セクション プロパティを定義する方法を InfiniteTimeSpanConverter 示しています。
カスタム セクションを実装する完全なコード例については、 クラスを ConfigurationConverterBase 参照してください。
[ConfigurationProperty("timeDelay",
DefaultValue = "infinite")]
[TypeConverter(typeof(InfiniteTimeSpanConverter))]
public TimeSpan TimeDelay
{
get
{
return (TimeSpan)this["timeDelay"];
}
set
{
this["timeDelay"] = value;
}
}
<ConfigurationProperty("timeDelay", _
DefaultValue:="infinite"), _
TypeConverter(GetType(InfiniteTimeSpanConverter))> _
Public Property TimeDelay() As TimeSpan
Get
Return CType(Me("timeDelay"), TimeSpan)
End Get
Set(ByVal value As TimeSpan)
Me("timeDelay") = Value
End Set
End Property
次のコード例は、前のカスタム セクション プロパティにアクセスする方法を示しています。
using System;
using System.IO;
using System.ComponentModel;
using System.Configuration;
namespace Samples.AspNet
{
public sealed class UsingInfiniteTimeSpanConverter
{
public static void GetTimeDelay()
{
try
{
CustomSection section =
ConfigurationManager.GetSection("CustomSection")
as CustomSection;
Console.WriteLine("timeDelay: {0}",
section.TimeDelay.ToString());
}
catch (System.Exception e)
{
Console.WriteLine(e.Message);
}
}
public static void SetTimeDelay()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
CustomSection section =
config.Sections.Get("CustomSection")
as CustomSection;
TimeSpan td =
new TimeSpan();
td =
TimeSpan.FromMinutes(
DateTime.Now.Minute);
section.TimeDelay = td;
section.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
config.Save();
Console.WriteLine("timeDelay: {0}",
section.TimeDelay.ToString());
}
catch (System.Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
Imports System.IO
Imports System.ComponentModel
Imports System.Configuration
NotInheritable Public Class UsingInfiniteTimeSpanConverter
Public Shared Sub GetTimeDelay()
Try
Dim section As CustomSection = _
ConfigurationManager.GetSection( _
"CustomSection")
Console.WriteLine("timeDelay: {0}", _
section.TimeDelay.ToString())
Catch e As System.Exception
Console.WriteLine(e.Message)
End Try
End Sub
Public Shared Sub SetTimeDelay()
Try
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
Dim section As CustomSection = _
config.Sections.Get("CustomSection")
Dim td As New TimeSpan()
td = _
TimeSpan.FromMinutes( _
DateTime.Now.Minute)
section.TimeDelay = td
section.SectionInformation.ForceSave = True
config.Save(ConfigurationSaveMode.Full)
config.Save()
Console.WriteLine("timeDelay: {0}", _
section.TimeDelay.ToString())
Catch e As System.Exception
Console.WriteLine(e.Message)
End Try
End Sub
End Class
前の例で使用した構成の抜粋を次に示します。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="CustomSection"
type="Samples.AspNet.CustomSection,
ConfigurationConverters,
Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null"
allowDefinition="Everywhere"
allowExeDefinition="MachineToApplication"
restartOnExternalChanges="true" />
</configSections>
<CustomSection fileName="default.txt" maxIdleTime="90" timeDelay="infinite"/>
</configuration>
注釈
この型は、他のすべての構成コンバーター型と同様に、構成ファイルで見つかった文字列を、関連する厳密に型指定されたプロパティとの間で変換します。
特に、 は InfiniteTimeSpanConverter 、構成プロパティに String 割り当てられた値 "infinite" を標準の無限 TimeSpan に変換し、その逆を行います。 無限 TimeSpan の値は列挙値によって MaxValue 表されます。
このコンバーターは、プロパティと共に TimeSpan 使用されます。 無限の値は、"無限" 文字列として保持されます。
コンストラクター
InfiniteTimeSpanConverter() |
InfiniteTimeSpanConverter クラスの新しいインスタンスを初期化します。 |
メソッド
適用対象
こちらもご覧ください
.NET