2009-10-20 21 views
0

我在尝试向通过XML序列化加载的预先存在的类添加某些日期时遇到了问题,而且它没有执行我认为应该执行的操作。在DATETIME中使用带XML序列化的“FOR XML”类型

我敲了一个基本的测试用的SQL(其中生效于和生效至被声明为DATETIME

SELECT o.EffectiveFrom AS [@EffectiveFrom], 
     o.EffectiveTo AS [@EffectiveTo], 
FROM dbo.MyObject o 
FOR XML PATH('MyObject'), ROOT('ArrayOfMyObject'), type 

其中给出XML:

<ArrayOfMyObject> 
    <MyObject EffectiveFrom="1977-11-23T00:00:00" EffectiveTo="2050-01-01T00:00:00" /> 
</ArrayOfMyObject> 

然后,我已经声明了类如:

public class MyObject 
{ 
    [XmlAttribute("EffectiveFrom")] 
    public DateTime EffectiveFrom { get; set; } 

    [XmlAttribute("EffectiveTo")] 
    public DateTime EffectiveTo { get; set; } 
} 

但是,属性没有被设置。我可能只是在“度过一个美好的一天”,并且明显地失去了盲目性,但我会希望这个“只是工作” - 任何想法为什么它不是?

请问我真的必须创建在设置呼叫Date.ParseExact()一些字符串属性,ToString()的get,标记,对于XML序列化,并且标记不动产为XmlIgnore()

+0

请发布XML。 – 2009-10-21 20:46:18

+0

已添加XML ... – 2009-10-22 08:14:21

回答

0

似乎与SQL Server 2008“一起工作”,因为我们之前一直在使用SQL Server 2005

0

我没有看到< MyObject>的结束标记?

+0

为什么-1!当我发布这个时,我没有看到< ... />结束斜杠! – Preets 2009-10-22 11:44:43

+0

这就是罗兰在编辑中所做的改变!耶稣! – Preets 2009-10-22 11:46:11

+1

-1可能是因为这*不是答案*;你可以添加你的评论作为评论,毕竟... – 2009-10-28 18:13:35