TimeSpan [] XmlSerialization

时间:2014-10-02 14:21:54

标签: c# xml-serialization

我在myClass中有字段public TimeSpan TimeSpanField。我创建了myClass和fill字段的实例。接下来我想将它序列化为XML并反序列化回对象。我知道Microsoft在TimeSpan序列化方面存在问题,因此我找到了答案How to serialize a TimeSpan to XML并使用它。 好!它运作良好。但是如何使public TimeSpan[] TimeSpanArrayField类似。在这种情况下,索引器(http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx)没有帮助。

public TimeSpan TimeSpanField的代码

    [XmlIgnore]
    public TimeSpan TimeSpanField;

    [Browsable(false)]
    [XmlElement(DataType = "duration", ElementName = "TimeSpanField")]
    public string TimeSpanFieldString
    {
        get
        {
            return XmlConvert.ToString(TimeSpanField);
        }
        set
        {
            TimeSpanField = string.IsNullOrEmpty(value) ?
                TimeSpan.Zero : XmlConvert.ToTimeSpan(value);
        }
    }

1 个答案:

答案 0 :(得分:0)

解决。

    [XmlIgnore]
    public TimeSpan[] TimeSpanArrayField;

    [Browsable(false)]
    [XmlElement(DataType = "duration", ElementName = "TimeSpanField")]
    public string[] TimeSpanFieldString
    {
        get
        {
            string[] strings = new string[TimeSpanArrayField.Length];
            for (int number = 1; number <= TimeSpanArrayField.Length; number++)
                strings[number - 1] = TimeSpanArrayField[number - 1].ToString();
            return strings;
        }
        set
        {
            TimeSpanArrayField = new TimeSpan[value.Length];
            for (int number = 1; number <= value.Length; number++)
                TimeSpanArrayField[number - 1] = TimeSpan.Parse(value[number - 1]);
        }
    }