2010-06-30 79 views
14

看来ConfigurationElementTimeSpan无法处理大于23:59:59的值。有没有解决方法?子类TimeSpan,并使新的TimeSpanValidatorAttribute甚至去工作?我需要处理几分钟到几天的时间跨度。时间跨度的配置?

我用下面的配置部分

[ConfigurationProperty("SequenceRolloverDOSCompare", IsRequired = true)] 
[TimeSpanValidator(MinValueString = "0:0:00", MaxValueString = 10675199.02:48:05.4775807", ExcludeRange = false)] 
public TimeSpan SequenceRolloverDOSCompare 
{ 
    get 
    { 
     return (TimeSpan)base["SequenceRolloverDOSCompare"]; 
    } 
} 

与配置看起来像这样:

<SequenceRolloverPolling SequenceRolloverDOSCompare="2:00:00:00" /> 

ConfigurationErrorsException : The value of the property 'SequenceRolloverDOSCompare' cannot be parsed. The error is: 2:00:00:00 is not a valid value for TimeSpan.

或本:

<SequenceRolloverPolling SequenceRolloverDOSCompare="48:00:00" /> 

给出OverflowException : The TimeSpan could not be parsed because at least one of the hours, minutes, or seconds components is outside its valid range

回答

22

使用日期和时间之间的.分离器:

<SequenceRolloverPolling 
    SequenceRolloverDOSCompare="2.00:00:00" /> 

TimeSpan format的定义为:

... [ - ] d.hh:MM:SS.FF ,其中可选的负号表示负的时间间隔,d分量是天,hh是24小时制测量的小时,mm是分钟,ss是秒,ff是秒的分数。

+2

我的眼睛一定已经釉过了 – BozoJoe 2010-06-30 00:27:02