【发布时间】:2012-12-26 11:39:27
【问题描述】:
我使用 MS Studio 2010 Express for Windows Phone 来构建应用程序。在我的应用程序中,我得到了 http 响应并以字符串形式读取它,然后我将其反序列化到类对象中。它在没有 List 集合作为属性的类中工作正常。当它反序列化具有 List 属性的类时,它得到了这样的错误
Error in line 12 position 5. Expecting state 'Element'.. Encountered 'EndElement' with name 'ContactList', namespace 'http://schemas.datacontract.org/2004/07/DataObjects’.
我想我可以读取 xml 并将值分配给类。我搜索阅读 xml 文件和很多网站提到使用 XDocument .Prase 方法或 xlmDocument.Load。但是添加 System.Xml.Ling 作为参考的事件,我仍然看不到 XDocument .Parse 方法或 xlmDocument 。有人能告诉我应该怎么做才能将以下值分配给类吗?
有我的类对象:
public class CallDetails
{
public int id { get; set; }
public string summary { get; set; }
public string errorMsg { get; set; }
public int parentCallid { get; set; }
public string parentCallURL { get; set; }
public string assignedTo { get; set; }
public string OrgName { get; set; }
public DateTime onHoldSince { get; set; }
public DateTime onHoldUntil { get; set; }
public string requester { get; set; }
public bool isOnHold { get; set; }
private List<Contact> m_ContactList = new List<Contact>();
public List<Contact> ContactList
{
get { return m_ContactList; }
}
}
有回应:
<?xml version="1.0" encoding="utf-8"?><CallDetails xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DataObjects">
<ContactList>
<Contact>
<Method>PriPhone</Method>
<Number>(604) 555-1234</Number>
</Contact>
<Contact>
<Method>Fax</Method>
<Number>(604)555-1234</Number>
</Contact>
</ContactList>
<errorMsg
i:nil="true" />
<id>0</id>
<isOnHold>false</isOnHold>
<onHoldSince>0001-01-01T00:00:00</onHoldSince>
<onHoldUntil>0001-01-01T00:00:00</onHoldUntil>
<parentCallURL>/Call/349551</parentCallURL>
<parentCallid>0</parentCallid>
<requester>Peter </requester>
<summary>Mobile Application Research</summary>
</CallDetails>
【问题讨论】:
-
虽然我通常鼓励人们在问题中提供足够的信息,但您包含的信息太多了。您的问题与 XML 文档的内容或序列化无关。您的问题是使用 XDocument.Parse 时出现编译错误。
-
@JohnSaunders 我的代码中没有 XDocument.Parse,这就是为什么我问我是如何拥有它的。我使用 DataContractSerializer.ReadObject 来做序列化程序。如果类没有List
,则没有错误。 -
要清楚,我指的是你说“我仍然看不到 XDocument .Parse 方法”。不是编译错误,但还是和你的代码逻辑无关。
标签: windows-phone-7 xml-parsing linq-to-xml