Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 列表的XML序列化<;日期时间>;使用自定义日期时间格式_C#_Xml_List_Datetime_Serialization - Fatal编程技术网

C# 列表的XML序列化<;日期时间>;使用自定义日期时间格式

C# 列表的XML序列化<;日期时间>;使用自定义日期时间格式,c#,xml,list,datetime,serialization,C#,Xml,List,Datetime,Serialization,我在XML序列化方面遇到了一些问题。(可能类似于,但关于序列化而不是反序列化)。 我需要使用自定义日期时间格式序列化列表。 我可以对单个DateTime变量执行此操作,但我不知道如何对列表执行此操作 下面是我试图在代码中执行的操作 对于简单的DateTime变量,我使用以下代码: [XmlType("Time")] public class Time : BaseClass { public Time() { base.Name = string.Empty;

我在XML序列化方面遇到了一些问题。(可能类似于,但关于序列化而不是反序列化)。 我需要使用自定义日期时间格式序列化
列表
。 我可以对单个
DateTime
变量执行此操作,但我不知道如何对列表执行此操作

下面是我试图在代码中执行的操作

对于简单的
DateTime
变量,我使用以下代码:

[XmlType("Time")]
public class Time : BaseClass
{
    public Time()
    {
        base.Name = string.Empty;
        StartTimeDt = DateTime.Now;            
    }

    [XmlIgnore]
    public DateTime StartTimeDt
    {
        get { return DateTime.Parse(StartTime); }
        set { StartTime = value.ToString("yyyy-MM-dd HH:mm:ss.fff"); }
    }

    [XmlAttribute("StartTime")]
    public string StartTime { get; set; }
}
要获取此XML结构,请执行以下操作:

<Time Name="" StartTime="2014-05-05 11:00:00.000">
要生成此XML输出,请执行以下操作:

<Calendar Name="">
    <Days>
        <Day>2014-03-02</Day>
        <Day>2014-05-03</Day>
        <Day>[…]</Day>
    </Days>
</Annual>
我的
DaysDt
Days
列表始终包含0个对象,当我进行序列化时,它不会序列化任何内容


这个示例代码中有任何明显的错误吗?我很确定我在使用自定义格式的
列表
列表
之间的转换中犯了一些错误…

您发布的代码有错误

没有序列化是合理的。DaysDt对象未序列化(因为您设置了XmlIgnore属性),并且您从不在Days对象上分配任何值。我想你可能把获取/设置与向列表中添加项目混淆了

执行时:

calendar.DaysDt.Add(DateTime.Now);
二传手未被呼叫! 这就给你留下了一个空的Days对象

例如,尝试以下代码,看看它是否有效:

Calendar calendar = new Calendar();
List<DateTime> lst = new List<DateTime>();
lst.Add(DateTime.Now);
lst.Add(DateTime.Now.AddDays(5));
lst.Add(DateTime.Now.AddDays(10));
calendar.DaysDt = lst;
Calendar Calendar=新日历();
List lst=新列表();
lst.Add(DateTime.Now);
lst.Add(DateTime.Now.AddDays(5));
lst.Add(DateTime.Now.AddDays(10));
calendar.DaysDt=lst;

谢谢,你说得对!我太热衷于Xml属性和datetime/字符串解析,以至于我没有注意到这个错误!
calendar.DaysDt.Add(DateTime.Now);
Calendar calendar = new Calendar();
List<DateTime> lst = new List<DateTime>();
lst.Add(DateTime.Now);
lst.Add(DateTime.Now.AddDays(5));
lst.Add(DateTime.Now.AddDays(10));
calendar.DaysDt = lst;