首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将TimeSpan序列化为XML

要将TimeSpan序列化为XML,您可以使用C#的内置XML序列化器,例如XmlSerializer类。以下是一个简单的示例,说明如何将TimeSpan对象序列化为XML字符串,并将其反序列化为TimeSpan对象。

首先,定义一个包含TimeSpan属性的类:

代码语言:csharp
复制
using System;

public class TimeSpanData
{
    public TimeSpan TimeSpanValue { get; set; }
}

接下来,创建一个TimeSpanData对象,并将其序列化为XML字符串:

代码语言:csharp
复制
using System;
using System.IO;
using System.Xml.Serialization;

public class TimeSpanData
{
    public TimeSpan TimeSpanValue { get; set; }
}

public class Program
{
    public static void Main()
    {
        TimeSpanData data = new TimeSpanData { TimeSpanValue = new TimeSpan(1, 2, 3, 4, 5) };

        XmlSerializer serializer = new XmlSerializer(typeof(TimeSpanData));
        using StringWriter writer = new StringWriter();
        serializer.Serialize(writer, data);

        string xmlString = writer.ToString();
        Console.WriteLine("Serialized XML:");
        Console.WriteLine(xmlString);
    }
}

这将输出以下XML字符串:

代码语言:xml
复制
<?xml version="1.0" encoding="utf-16"?>
<TimeSpanData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <TimeSpanValue>P1DT2H3M4.005S</TimeSpanValue>
</TimeSpanData>

最后,反序列化XML字符串为TimeSpanData对象:

代码语言:csharp
复制
using System;
using System.IO;
using System.Xml.Serialization;

public class TimeSpanData
{
    public TimeSpan TimeSpanValue { get; set; }
}

public class Program
{
    public static void Main()
    {
        TimeSpanData data = new TimeSpanData { TimeSpanValue = new TimeSpan(1, 2, 3, 4, 5) };

        XmlSerializer serializer = new XmlSerializer(typeof(TimeSpanData));
        using StringWriter writer = new StringWriter();
        serializer.Serialize(writer, data);

        string xmlString = writer.ToString();
        Console.WriteLine("Serialized XML:");
        Console.WriteLine(xmlString);

        using StringReader reader = new StringReader(xmlString);
        TimeSpanData deserializedData = (TimeSpanData)serializer.Deserialize(reader);

        Console.WriteLine("Deserialized TimeSpanData:");
        Console.WriteLine($"TimeSpanValue: {deserializedData.TimeSpanValue}");
    }
}

这将输出以下内容:

代码语言:txt
复制
Serialized XML:
<?xml version="1.0" encoding="utf-16"?>
<TimeSpanData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <TimeSpanValue>P1DT2H3M4.005S</TimeSpanValue>
</TimeSpanData>
Deserialized TimeSpanData:
TimeSpanValue: 1.02:03:04.0050000

这样,您就可以将TimeSpan对象序列化为XML字符串,并将其反序列化为TimeSpan对象。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WCF技术剖析之十二:数据契约(Data Contract)和数据契约序列化器(DataContractSerializer)

大部分的系统都是以数据为中心的(Data Central),功能的实现表现在对相关数据的正确处理。而数据本身,是有效信息的载体,在不同的环境具有不同的表示。一个分布式的互联系统关注于数据的交换,而数据正常交换的根本前提是参与数据交换的双方对于数据结构的一致性理解。这就为数据的表现提出了要求,为了保证处于不同平台、不同厂商的应用能够正常地进行数据交换,交换的数据必须采用一种大家都能够理解的展现方式。在这方面,XML无疑是最好的选择。所以WCF下的序列化(Serialization)解决的就是如何将数据从对象的

09
领券