在C#(2.0)中序列化对象时格式化日期
我正在用xml序列化一个具有大量属性的对象,我有两个具有DateTime类型的属性。我想格式化序列化输出的日期。我真的不想实现IXmlSerializable接口并覆盖每个属性的序列化。有没有其他方法可以做到这一点 (我使用的是C#,.NET2)在C#(2.0)中序列化对象时格式化日期,c#,datetime,xml-serialization,C#,Datetime,Xml Serialization,我正在用xml序列化一个具有大量属性的对象,我有两个具有DateTime类型的属性。我想格式化序列化输出的日期。我真的不想实现IXmlSerializable接口并覆盖每个属性的序列化。有没有其他方法可以做到这一点 (我使用的是C#,.NET2) 谢谢。您可以为DateTime使用覆盖ToString方法的包装类/结构 public struct CustomDateTime { private readonly DateTime _date; public CustomDat
谢谢。您可以为
DateTime
使用覆盖ToString
方法的包装类/结构
public struct CustomDateTime
{
private readonly DateTime _date;
public CustomDateTime(DateTime date)
{
_date = date;
}
public override string ToString()
{
return _date.ToString("custom format");
}
}
对于XML序列化,您必须实现
IXmlSerializable
而不是ISerializable
但是,您可以通过使用helper属性并使用XmlIgnore
属性标记DateTime
属性来解决此问题
public class Foo
{
[XmlIgnore]
public DateTime Bar { get; set; }
public string BarFormatted
{
get { return this.Bar.ToString("dd-MM-yyyy"); }
set { this.Bar = DateTime.ParseExact(value, "dd-MM-yyyy", null); }
}
}
是的,它是IXmlSerializable-是在匆忙中输入的…-更正。谢谢