C# TimeSpan[]XmlSerialization
我在myClass中有公共TimeSpan TimeSpan字段。我创建myClass的实例并填充字段。接下来,我想将其序列化为XML并反序列化回对象。我知道Microsoft在TimeSpan序列化方面存在问题,因此我找到了答案并使用了它。 好啊它工作得很好。但是如何使公共TimeSpan[]TimeSpanArrayField类似。在这种情况下,索引器没有帮助 公共TimeSpan TimeSpan字段的代码 解决了C# TimeSpan[]XmlSerialization,c#,xml-serialization,C#,Xml Serialization,我在myClass中有公共TimeSpan TimeSpan字段。我创建myClass的实例并填充字段。接下来,我想将其序列化为XML并反序列化回对象。我知道Microsoft在TimeSpan序列化方面存在问题,因此我找到了答案并使用了它。 好啊它工作得很好。但是如何使公共TimeSpan[]TimeSpanArrayField类似。在这种情况下,索引器没有帮助 公共TimeSpan TimeSpan字段的代码 解决了 [XmlIgnore] public TimeSpan[]
[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]);
}
}
将其值转换为可以序列化的内容。您始终可以将timespan序列化为一个长[],它在其中存储刻度。然后,您可以使用ticks构造函数将其转换回TimeSpan。@CathalMF,我将TimeSpan转换为字符串,然后再转换回,效果很好。我想为Timespan阵列制作类似的
[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]);
}
}