我想序列化DatetimeFormatInfo类型的对象。
我尝试了以下代码:
DateTimeFormatInfo dateTimeFormat = new DateTimeFormatInfo();
dateTimeFormat.ShortDatePattern = "dd-MMM-yy";
xs = new XmlSerializer(dateTimeFormat.GetType());
StreamWriter sw = new StreamWriter("Setting.xml");
xs.Serialize(sw, dateTimeFormat);但它抛出了下面的异常。
System.InvalidOperationException未被处理。 生成XML文档时出错。 没有预料到System.Globalization.GregorianCalendar类型。 使用XmlInclude或SoapInclude属性指定静态不知道的类型。
我需要添加什么来序列化DateTimeFormatInfo吗?
发布于 2014-05-08 12:33:32
您需要在XmlSerializer中包含要序列化的成瘾对象类型的列表。在您的示例中,您需要添加对象类型System.Globalization.GregorianCalendar。
System.Globalization.DateTimeFormatInfo dateTimeFormat = new System.Globalization.DateTimeFormatInfo();
dateTimeFormat.ShortDatePattern = "dd-MMM-yy";
// Add here all the extra types you need to serialize
Type[] extraTypes = new Type[] { typeof(System.Globalization.GregorianCalendar) };
System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(dateTimeFormat.GetType(), extraTypes);
System.IO.StreamWriter sw = new System.IO.StreamWriter(@"c:\testso.xml");
xs.Serialize(sw, dateTimeFormat);https://stackoverflow.com/questions/23063795
复制相似问题