2010-06-30 7 views
14

Es scheint, dass ConfigurationElement von TimeSpan keine Werte verarbeiten kann, die größer als 23:59:59 sind. Gibt es Workarounds? Ist Unterklasse TimeSpan, und eine neue TimeSpanValidatorAttribute sogar zur Arbeit gehen? Ich muss die Zeitspannen von ein paar Minuten bis zu ein paar Tagen bewältigen.TimeSpan der Tage in der Konfiguration?

Ich verwende den folgenden Konfigurationsabschnitt

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

mit Config wie folgt aussehen:

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

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

oder dies:

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

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

Antwort

22

die . Separator zwischen den Tagen und Stunden Anwendung:

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

Die TimeSpan format ist definiert als:

... [-] d.hh: mm: ss.ff Wenn das optionale Minuszeichen ein negatives Zeitintervall angibt, sind die d-Komponente Tage, hh Stunden im 24-Stunden-Format, mm Minuten, ss Sekunden und ff Bruchteile von Sekunden.

+2

meine Augen müssen glasig sein – BozoJoe

Verwandte Themen