2
私はこれは私が私がRESTサービスC#のDataContractSerializer問題
public object getMetaData(string uri, Type type)
{
//Create Object To Be Returned
object result = null;
//Create Web Request
HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest;
//Get Response
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
if (request.HaveResponse && response != null)
{
using (Stream reader = response.GetResponseStream())
{
DataContractSerializer xmlSer = new DataContractSerializer(type);
result = xmlSer.ReadObject(reader);
}
}
}
return result;
}
を消費するために使用している方式です
<CollectionOfItems>
<Item>
<Param1>param1 value</Param1>
<Param2>param2 value</Param2>
</Item>
<Item>
<Param1>param1 value</Param1>
<Param2>param2 value</Param2>
</Item>
</CollectionOfItems>
の形でXMLを返す安らかサービスからデータを引っ張っています<CollectionOfItems>
[CollectionDataContract(Name = "CollectionOfItems", Namespace = "http://matchingnamespace")]
public class CollectionOfItems: List<Item>
{
}
そしてを保持するクラスに一致するクラスを持っています0
[DataContract(Name="Item")]
public class Item
{
[DataMember(Name="Param1")]
public string param1{ get; set; }
[DataMember(Name="Param2")]
public string param2{ get; set; }
}
私の問題は、私はリストボックスに結果をバインドするとき、私は結果の正確な数を持っていますが、私は唯一の空白行として結果を参照してくださいオブジェクトで終わるということです。私は<Item>
の正しい量の<CollectionOfItems>
を持っているようですが、私はparam1やparam2などの値は表示されません....
結果をListBoxにバインドする方法を教えてください。 'getmetadata'によって返されたオブジェクトをCollectionOfItemsにキャストすると、デバッガで正しい値が表示されますか? – RBDev
悲しいことに、それらはデバッガでもすべてnullです。 xの結果を示し、正しいクラスを見つけました。また、param1、param2などを示しています...しかし、NULLSとして – Oli
私は結果を真っ直ぐに破るよxmlSer.ReadObject(リーダー);結果の内容を見る – Oli