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

하지만 실제 실행 결과 화면은 아래와 같습니다.



이것은 버그가 아닌가 의심됩니다.