Web アプリケーションを電話アプリケーションに変換する必要があります。Web アプリの一般的なリストに応答する要求をデシリアライズすることに成功しましたが、電話アプリでそれを行う方法がわかりません。Web では DataContractSerializer と XmlDictionaryRead.CreateTextReader と System.Xml.XmlDictionaryReaderQuotas() を使用できますが、Windows phone にはそのようなメソッドはありません。コードを修正したところ、そのようなエラーが発生しました
行 1 位置 2 のエラー。名前空間 'http://schemas.datacontract.org/2004/07/CMSPhoneApp.DataObjects' から要素 'ArrayOfQueueItem' を予期しています.. //名前 'QueueItem'、名前空間 '' の 'Element' に遭遇しました.
デシリアライズするコードがあります
try{
using (XmlReader r = XmlReader.Create(new StringReader(content)))
{
var ser = new DataContractSerializer(typeof(T));
var reader = XmlDictionaryReader.CreateDictionaryReader(r);
ser = new DataContractSerializer(typeof(T));
var deserializedItem = (T)ser.ReadObject(reader, true);
reader.Close();
return deserializedItem;
}
}
以下のように、応答ストリームを文字列に読み込みます。
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfQueueItem xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DataObjects">
<QueueItem>
<callNumber>349551</callNumber>
<errorMsg
i:nil="true" />
<link>/Call/349551</link>
<page>Call</page>
<siteCity>Burnaby</siteCity>
<status>Open</status>
<summary>Mobile Application Research</summary>
</QueueItem>
<QueueItem>
<callNumber>376209</callNumber>
<errorMsg
i:nil="true" />
<link>/Call/376209</link>
<page>Call</page>
<siteCity>Burnaby</siteCity>
<status>Open</status>
<summary>July 2012 ASD Calls of the Month.</summary>
</QueueItem>
</ArrayOfQueueItem>
以下は「QueueItem」クラスです。
namespace CMSPhoneApp.DataObjects
{
//This is Model
public class QueueItem
{
public string callNumber { get; set; }
public string summary { get; set; }
public string status { get; set; } //queInvoiceAdmin no status
public string link { get; set; }
public string errorMsg { get; set; }
public string page { get; set; }
public string siteCity { get; set; }
}
}
応答ストリームを次のようにカットしようとしても、同じエラーが発生します。
<QueueItem>
<callNumber>349551</callNumber>
<errorMsg
i:nil="true" />
<link>/Call/349551</link>
<page>Call</page>
<siteCity>Burnaby</siteCity>
<status>Open</status>
<summary>Mobile Application Research</summary>
</QueueItem>
<QueueItem>
<callNumber>376209</callNumber>
<errorMsg
i:nil="true" />
<link>/Call/376209</link>
<page>Call</page>
<siteCity>Burnaby</siteCity>
<status>Open</status>
<summary>July 2012 ASD Calls of the Month.</summary>
</QueueItem>
誰かが私を案内したり、この問題を解決するための例やリンクを見せてくれませんか. 前もって感謝します。