在C#(2.0)中序列化对象时格式化日期

Zom*_*man 3 c# datetime xml-serialization

我是xml序列化具有大量属性的对象,我有两个DateTime类型的属性.我想格式化序列化输出的日期.我真的不想实现IXmlSerializable接口并覆盖每个属性的序列化.有没有其他方法来实现这一目标?

(我正在使用C#,.NET 2)

谢谢.

Joã*_*elo 5

对于XML序列化,您必须实现IXmlSerializable而不是ISerializable.

但是,您可以通过使用辅助属性并使用属性标记DateTime属性来解决此问题XmlIgnore.

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); }
    }
}
Run Code Online (Sandbox Code Playgroud)