Nasıl XML için bir zaman dilimi seri hale getirmek için
Bir seri hale getirmek için çalışıyorum .NET TimeSpan
XML nesne ve çalışmıyor. Hızlı bir google TimeSpan
seri hale getirilebilir ise, XmlCustomFormatter
yöntem ve XML için TimeSpan
nesneleri dönüştürmek için sağlamaz önerdi.
Önerilen bir yaklaşım serileştirme TimeSpan
görmezden ve yerine TimeSpan.Ticks
(ve seri kaldırma için new TimeSpan(ticks)
kullanın) sonucu seri hale getirmek için. Bunun bir örneği aşağıdaki gibidir:
[Serializable]
public class MyClass
{
// Local Variable
private TimeSpan m_TimeSinceLastEvent;
// Public Property - XmlIgnore as it doesn't serialize anyway
[XmlIgnore]
public TimeSpan TimeSinceLastEvent
{
get { return m_TimeSinceLastEvent; }
set { m_TimeSinceLastEvent = value; }
}
// Pretend property for serialization
[XmlElement("TimeSinceLastEvent")]
public long TimeSinceLastEventTicks
{
get { return m_TimeSinceLastEvent.Ticks; }
set { m_TimeSinceLastEvent = new TimeSpan(value); }
}
}
Bu benim kısa bir test - bu en iyi yolu bunu başarmak için? işe görünürken
Daha iyi bir yol ve XML seri hale getirmek için bir zaman aralığı var mı?
CEVAP
Bu tek yol üzerinde küçük bir değişiklik söz konusu önerdi, ama this Microsoft Connect issue bu seri hale getirme gibi bir özelliği kullanarak önerir:
[XmlIgnore]
public TimeSpan TimeSinceLastEvent
{
get { return m_TimeSinceLastEvent; }
set { m_TimeSinceLastEvent = value; }
}
// XmlSerializer does not support TimeSpan, so use this property for
// serialization instead.
[Browsable(false)]
[XmlElement(DataType="duration", ElementName="TimeSinceLastEvent")]
public string TimeSinceLastEventString
{
get
{
return XmlConvert.ToString(TimeSinceLastEvent);
}
set
{
TimeSinceLastEvent = string.IsNullOrEmpty(value) ?
TimeSpan.Zero : XmlConvert.ToTimeSpan(value);
}
}
Bu, 0:02:45 bir zaman aralığı olarak seri hale getirmek:
<TimeSinceLastEvent>PT2M45S</TimeSinceLastEvent>
Alternatif olarak, DataContractSerializer
destekler zaman aralığı.
Nasıl bir dize içine bir nesne seri ha...
Nasıl C bir nesne seri hale getirmek i...
Nasıl Django model bir örneği seri hal...
Xmlns=" almadan XML nesne seri hal...
Nasıl JSON nesneler üzerinde __type öz...