Somebody said this is by design. Then this is another design flaw and evidence of the immaturity of .Net Framework?! Google for "convert XML duration type to TimeSpan" returned all kind of workarounds. The general idea is to use a helper string property to make the Dumb XmlSerializer happy. But some of them are just inappropriate due to the way the TimeSpan is converted to string. XML Schema type xs:duration has its special format. This one simply uses TimeSpan.ToString(). There is also a book presented a home grown utility to do the conversion. While XmlSerializer failed to handle it, but it is ironical that there is a .Net Framework class, XmlConvert, does exactly this but sadly, the designer of XmlSerializer simply ignored it.
Below is the workaround I used to map the TimeSpan to xs:duration.
private TimeSpan _timeToLive = new TimeSpan(0, 10, 0); // 10 minutes
[XmlIgnore]
public TimeSpan TimeToLive
{
get { return _timeToLive; }
set { _timeToLive = value; _expiration = null; }
}
[XmlAttribute("TimeToLive", DataType = "duration")]
[DefaultValue("PT10M")]
public string XmlTimeToLive
{
get { return XmlConvert.ToString(_timeToLive); }
set { _timeToLive = XmlConvert.ToTimeSpan(value); }
}
11 comments:
great!
is this still required in .NET 3.5? It seems that TimeSpan is not yet managed.. :(
It's still required even in .NET 4.
and... 2.5 years later in 2013 this is STILL required. Come on Microsoft.
and ... 4 months later in 2013 this workaround does not even work on Windows Phone 8.
We write the year 2014 (30.10.2014) and its still required!
happy new year 2015!!! still nothing...
this is ridicolous in 2018
You should participate in a contest for top-of-the-line blogs on the web. I will suggest this site! online casinos for us players
Same in 2020. No implementation for xml serialization :(
원주콜걸
삼척콜걸
이천콜걸
성주콜걸
이천콜걸
춘천콜걸
칠곡콜걸
Cool and that i have a swell offer you: How Much Should House Renovations Cost split level exterior remodel
Post a Comment