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
하지만 실제 실행 결과 화면은 아래와 같습니다.
이것은 버그가 아닌가 의심됩니다.
'Show' 카테고리의 다른 글
| Intel Chipsets (0) | 2007.12.23 |
|---|---|
| 인텔 칩셋 비교 (G31, G33, P31, P35) (0) | 2007.12.23 |
| Generic Dictionary는 XML Serialization이 안된다. (0) | 2007.12.15 |
| Visual C# 2005 단축키 (shortcuts) (0) | 2007.12.11 |
| C# & .NET , BCL에 대한 단상 (0) | 2007.12.09 |