【发布时间】:2025-12-26 17:35:11
【问题描述】:
我有一个要序列化为对象的 XML 文件。一些元素被忽略了。
我的 XML 文件:
<?xml version="1.0" encoding="utf-8" ?>
<License xmlns="http://schemas.datacontract.org/2004/07/MyApp.Domain">
<Guid>7FF07F74-CD5F-4369-8FC7-9BF50274A8E8</Guid>
<Url>http://www.gmail.com</Url>
<ValidKey>true</ValidKey>
<CurrentDate>3/1/2010 9:39:28 PM</CurrentDate>
<RegistrationDate>3/8/2010 9:39:28 PM</RegistrationDate>
<ExpirationDate>3/8/2099 9:39:28 PM</ExpirationDate>
</License>
我的班级定义:
[DataContract]
public class License
{
[DataMember]
public virtual int Id { get; set; }
[DataMember]
public virtual string Guid { get; set; }
[DataMember]
public virtual string ValidKey { get; set; }
[DataMember]
public virtual string Url { get; set; }
[DataMember]
public virtual string CurrentDate { get; set; }
[DataMember]
public virtual string RegistrationDate { get; set; }
[DataMember]
public virtual string ExpirationDate { get; set; }
}
还有我的序列化尝试:
XmlDocument Xmldoc = new XmlDocument();
Xmldoc.Load(string.Format(url));
string xml = Xmldoc.InnerXml;
var serializer = new DataContractSerializer(typeof(License));
var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(xml));
License license = (License)serializer.ReadObject(memoryStream);
memoryStream.Close();
以下元素被序列化:
- 指南
- 有效密钥
以下元素未序列化:
- 网址
- 当前日期
- 注册日期
- 有效期
用“blah”替换 xml 文件中的字符串日期也不起作用。什么给了?
【问题讨论】:
-
顺便说一句,反序列化
XmlDoc.CreateNavigator().ReadSubtree()可能会更快。这将在您的文档上返回一个 XmlReader。 -
谢谢约翰,我会检查的!
标签: c# xml serialization datacontractserializer