私の質問は、私の周りTimeSpan
インスタンスを渡す多くのDTOオブジェクトを持つHow to serialize a TimeSpan to XML.NET(ない同じ質問を!)
の続きです。元のポストで説明されているハックを使用しますが、それぞれとすべてのDT300で同じコードを繰り返してください。TimeSpan
プロパティ
だから、私はちょうど罰金XMLシリアル化可能である、次のラッパークラス、付属:
#if !SILVERLIGHT
[Serializable]
#endif
[DataContract]
public class TimeSpanWrapper
{
[DataMember(Order = 1)]
[XmlIgnore]
public TimeSpan Value { get; set; }
public static implicit operator TimeSpan?(TimeSpanWrapper o)
{
return o == null ? default(TimeSpan?) : o.Value;
}
public static implicit operator TimeSpanWrapper(TimeSpan? o)
{
return o == null ? null : new TimeSpanWrapper { Value = o.Value };
}
public static implicit operator TimeSpan(TimeSpanWrapper o)
{
return o == null ? default(TimeSpan) : o.Value;
}
public static implicit operator TimeSpanWrapper(TimeSpan o)
{
return o == default(TimeSpan) ? null : new TimeSpanWrapper { Value = o };
}
[JsonIgnore]
[XmlElement("Value")]
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public long ValueMilliSeconds
{
get { return Value.Ticks/10000; }
set { Value = new TimeSpan(value * 10000); }
}
}
問題は、XMLが、それはそうのようなルックス生成することである:
<Duration>
<Value>20000</Value>
</Duration>
の代わりに、天然の
<Duration>20000</Duration>
私の質問は「私はケーキを食べて全体を持っていますか?意味、同じ反復コードを持つすべてのDTOを混乱させることなく、自然に見えるXMLを持っていることを説明したハックを楽しむことができますか?
ありがとうございました。