TimeSpanMinutesConverter 类

定义

转换以分钟表示的时间跨度。

public ref class TimeSpanMinutesConverter : System::Configuration::ConfigurationConverterBase
public class TimeSpanMinutesConverter : System.Configuration.ConfigurationConverterBase
type TimeSpanMinutesConverter = class
    inherit ConfigurationConverterBase
Public Class TimeSpanMinutesConverter
Inherits ConfigurationConverterBase
继承
派生

示例

下面的代码示例演示如何定义自定义 TimeSpanMinutesConverter 类型。

using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Globalization;
using System.ComponentModel;

public sealed class CustomTimeSpanMinutesConverter :
    ConfigurationConverterBase
{
    internal bool ValidateType(object value, 
        Type expected)
    {
        bool result;

        if ((value != null) &&
            (value.GetType() != expected))
            result = false;
        else
            result = true;

        return result;
    }

    public override bool CanConvertTo(
        ITypeDescriptorContext ctx, Type type)
    {
        return (type == typeof(string));
    }

    public override bool CanConvertFrom(
        ITypeDescriptorContext ctx, Type type)
    {
        return (type == typeof(string));
    }

    public override object ConvertTo(
        ITypeDescriptorContext ctx, CultureInfo ci,
        object value, Type type)
    {
        ValidateType(value, typeof(TimeSpan));

        long data = (long)(((TimeSpan)value).TotalMinutes);

        return data.ToString(CultureInfo.InvariantCulture);
    }

    public override object ConvertFrom(
        ITypeDescriptorContext ctx, CultureInfo ci, object data)
    {

        long min = long.Parse((string)data,
            CultureInfo.InvariantCulture);

        return TimeSpan.FromMinutes((double)min);
    }
}
Imports System.Collections.Generic
Imports System.Text
Imports System.Configuration
Imports System.Globalization
Imports System.ComponentModel




NotInheritable Public Class CustomTimeSpanMinutesConverter
    Inherits ConfigurationConverterBase
    
    Friend Function ValidateType(ByVal value As Object, _
    ByVal expected As Type) As Boolean
        Dim result As Boolean

        If Not (value Is Nothing) _
        AndAlso value.ToString() <> expected.ToString() Then
            result = False
        Else
            result = True
        End If
        Return result

    End Function 'ValidateType
    
    
    Public Overrides Function CanConvertTo( _
    ByVal ctx As ITypeDescriptorContext, _
    ByVal type As Type) As Boolean
        Return (type.ToString() = GetType(String).ToString())

    End Function 'CanConvertTo
    
    Public Overrides Function CanConvertFrom( _
    ByVal ctx As ITypeDescriptorContext, _
    ByVal type As Type) As Boolean
        Return (type.ToString() = GetType(String).ToString())

    End Function 'CanConvertFrom
    
    Public Overrides Function ConvertTo( _
    ByVal ctx As ITypeDescriptorContext, _
    ByVal ci As CultureInfo, ByVal value As Object, _
    ByVal type As Type) As Object
        ValidateType(value, GetType(TimeSpan))

        Dim data As Long = _
        Fix(CType(value, TimeSpan).TotalMinutes)

        Return data.ToString(CultureInfo.InvariantCulture)

    End Function 'ConvertTo
    
    Public Overrides Function ConvertFrom( _
    ByVal ctx As ITypeDescriptorContext, _
    ByVal ci As CultureInfo, ByVal data As Object) As Object

        Dim min As Long = _
        Long.Parse(CStr(data), CultureInfo.InvariantCulture)

        Return TimeSpan.FromMinutes(System.Convert.ToDouble(min))

    End Function 'ConvertFrom

End Class

下面是上一个示例使用的配置摘录。

<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" cdStr="str0, str1" permission="Read"   
    maxUsers="Infinite"/>  

</configuration>  

注解

与所有其他配置转换器类型一样,此类型会将配置文件中找到的字符串与相关的强类型属性相互转换。

具体而言, TimeSpanMinutesConverter 将分配给配置属性的 String 分钟数转换为 TimeSpan 分钟数,反之亦然。

保留 TimeSpanMinutesConverter 类型的 long 值,表示分钟数。

构造函数

TimeSpanMinutesConverter()

初始化 TimeSpanMinutesConverter 类的新实例。

方法

CanConvertFrom(ITypeDescriptorContext, Type)

确定是否允许此转换。

(继承自 ConfigurationConverterBase)
CanConvertFrom(Type)

返回该转换器是否可以将给定类型的对象转换为此转换器的类型。

(继承自 TypeConverter)
CanConvertTo(ITypeDescriptorContext, Type)

确定是否允许此转换。

(继承自 ConfigurationConverterBase)
CanConvertTo(Type)

返回此转换器是否可将该对象转换为指定的类型。

(继承自 TypeConverter)
ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

String 转换为 TimeSpan

ConvertFrom(Object)

将给定值转换为此转换器的类型。

(继承自 TypeConverter)
ConvertFromInvariantString(ITypeDescriptorContext, String)

使用不变区域性和指定上下文将给定字符串转换为此转换器的类型。

(继承自 TypeConverter)
ConvertFromInvariantString(String)

使用不变区域性将给定字符串转换为此转换器的类型。

(继承自 TypeConverter)
ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

使用指定的上下文和区域性信息将给定的文本转换为对象。

(继承自 TypeConverter)
ConvertFromString(ITypeDescriptorContext, String)

使用指定的上下文将给定的文本转换为对象。

(继承自 TypeConverter)
ConvertFromString(String)

将指定文本转换为对象。

(继承自 TypeConverter)
ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

TimeSpan 转换为 String

ConvertTo(Object, Type)

使用参数将给定的值对象转换为指定的类型。

(继承自 TypeConverter)
ConvertToInvariantString(ITypeDescriptorContext, Object)

使用指定的上下文将指定的值转换为区域性不变的字符串表示形式。

(继承自 TypeConverter)
ConvertToInvariantString(Object)

将指定值转换为区域性不变的字符串表示形式。

(继承自 TypeConverter)
ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

使用指定的上下文和区域性信息将给定的值转换为字符串表示形式。

(继承自 TypeConverter)
ConvertToString(ITypeDescriptorContext, Object)

使用给定的上下文将给定的值转换为字符串表示形式。

(继承自 TypeConverter)
ConvertToString(Object)

将指定值转换为字符串表示形式。

(继承自 TypeConverter)
CreateInstance(IDictionary)

在给定 Object 的一组属性值的情况下重新创建该对象。

(继承自 TypeConverter)
CreateInstance(ITypeDescriptorContext, IDictionary)

给定该对象的一组属性值,使用指定上下文创建与此 TypeConverter 相关联的类型的实例。

(继承自 TypeConverter)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetConvertFromException(Object)

返回当转换无法执行时所引发的异常。

(继承自 TypeConverter)
GetConvertToException(Object, Type)

返回当转换无法执行时所引发的异常。

(继承自 TypeConverter)
GetCreateInstanceSupported()

返回更改此对象的值是否求调用 CreateInstance(IDictionary) 方法来创建新值。

(继承自 TypeConverter)
GetCreateInstanceSupported(ITypeDescriptorContext)

返回一个结果,即更改此对象上的某个值是否需要调用 CreateInstance(IDictionary) 以使用指定的上下文创建新值。

(继承自 TypeConverter)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetProperties(ITypeDescriptorContext, Object)

使用指定的上下文返回值参数指定的数组类型的属性的集合。

(继承自 TypeConverter)
GetProperties(ITypeDescriptorContext, Object, Attribute[])

使用指定的上下文和特性返回由该值参数指定的数组类型的属性集合。

(继承自 TypeConverter)
GetProperties(Object)

返回由值参数指定的数组类型的属性集合。

(继承自 TypeConverter)
GetPropertiesSupported()

返回此对象是否支持属性。

(继承自 TypeConverter)
GetPropertiesSupported(ITypeDescriptorContext)

通过使用指定的上下文,返回此对象是否支持属性。

(继承自 TypeConverter)
GetStandardValues()

从默认的上下文返回此类型转换器设计用于的数据类型的标准值集合。

(继承自 TypeConverter)
GetStandardValues(ITypeDescriptorContext)

当与格式上下文一起提供时,返回此类型转换器设计用于的数据类型的标准值集合。

(继承自 TypeConverter)
GetStandardValuesExclusive()

返回从 GetStandardValues() 返回的标准值的集合是否为独占列表。

(继承自 TypeConverter)
GetStandardValuesExclusive(ITypeDescriptorContext)

使用指定的上下文返回从 GetStandardValues() 返回的标准值的集合是否为可能值的独占列表。

(继承自 TypeConverter)
GetStandardValuesSupported()

返回此对象是否支持可以从列表中选取的标准值集。

(继承自 TypeConverter)
GetStandardValuesSupported(ITypeDescriptorContext)

使用指定的上下文返回此对象是否支持可以从列表中选取的标准值集。

(继承自 TypeConverter)
GetType()

获取当前实例的 Type

(继承自 Object)
IsValid(ITypeDescriptorContext, Object)

返回给定的值对象是否对此类型和对指定的上下文有效。

(继承自 TypeConverter)
IsValid(Object)

返回给定值对象对于此类型是否有效。

(继承自 TypeConverter)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
SortProperties(PropertyDescriptorCollection, String[])

对属性的集合进行排序。

(继承自 TypeConverter)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅