2010-06-30 12 views
14

Wygląda na to, że ConfigurationElement z TimeSpan nie może obsłużyć wartości większych niż 23:59:59. Czy są jakieś obejścia? Czy podklasy TimeSpan, a nowy TimeSpanValidatorAttribute nawet zadziała? Muszę zarządzać czasem od kilku minut do kilku dni.TimeSpan dni w konfiguracji?

używam następującą sekcję konfiguracji

[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"]; 
    } 
} 

z config wygląda tak:

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

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

lub to:

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

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

Odpowiedz

22

pomocą . rozdzielającą dni i godzin:

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

The TimeSpan format jest zdefiniowany jako:

... [-] d.hh: MM: ss.ff , gdzie opcjonalny znak minus oznacza ujemny przedział czasu, składnik d to dni, hh to godziny mierzone na zegarze 24-godzinnym, mm to minuty, ss to sekundy, a ff to ułamki sekund.

+2

moje oczy musiały być przeszklone – BozoJoe

Powiązane problemy