Show
XmlSerializer의 버그? TimeSpan 클래스를 못 다루는 문제
Hide Code
2007. 12. 16. 12:50
TimeSpan 클래스는 XmlSerializer으로 serialize가 제대로 되지 않습니다.
TimeSpan 클래스를 XmlSerializer으로 serialize하려하면, 아무런 에러나 exception이 발생하지 않습니다.
하지만 실제로는 serialize가 되지 않습니다.
아래 예제를 봅시다.
using System;
using System.Xml;
using System.Xml.Serialization;
namespace XmlSerializerTest
{
class Program
{
static void Main(string[] args)
{
TimeSpan t1 = TimeSpan.FromSeconds(10);
Console.WriteLine(t1);
XmlSerializer serializer = new XmlSerializer(typeof(TimeSpan));
using (XmlWriter writer = XmlWriter.Create("test.xml"))
{
serializer.Serialize(writer, t1);
}
TimeSpan t2 = new TimeSpan();
using (XmlReader reader = XmlReader.Create("test.xml"))
{
t2 = (TimeSpan)serializer.Deserialize(reader);
}
Console.WriteLine(t2);
}
}
}
이 예제를 실행시키면 결과 화면이 아래와 같이 나와야 합니다.
00:00:10
00:00:10
하지만 실제 실행 결과 화면은 아래와 같습니다.
이것은 버그가 아닌가 의심됩니다.
TimeSpan 클래스를 XmlSerializer으로 serialize하려하면, 아무런 에러나 exception이 발생하지 않습니다.
하지만 실제로는 serialize가 되지 않습니다.
아래 예제를 봅시다.
using System;
using System.Xml;
using System.Xml.Serialization;
namespace XmlSerializerTest
{
class Program
{
static void Main(string[] args)
{
TimeSpan t1 = TimeSpan.FromSeconds(10);
Console.WriteLine(t1);
XmlSerializer serializer = new XmlSerializer(typeof(TimeSpan));
using (XmlWriter writer = XmlWriter.Create("test.xml"))
{
serializer.Serialize(writer, t1);
}
TimeSpan t2 = new TimeSpan();
using (XmlReader reader = XmlReader.Create("test.xml"))
{
t2 = (TimeSpan)serializer.Deserialize(reader);
}
Console.WriteLine(t2);
}
}
}
이 예제를 실행시키면 결과 화면이 아래와 같이 나와야 합니다.
00:00:10
00:00:10
하지만 실제 실행 결과 화면은 아래와 같습니다.
이것은 버그가 아닌가 의심됩니다.