我正在使用XmlSerializer將某些XML反序列化爲對象。我遇到的問題是我已經成功地反序列化了,我的一個屬性是數組,其屬性isFixedSize
設置爲true。XmlSerializer將數組屬性isFixedSize設置爲true
我需要在稍後階段手動添加到此陣列,但不能。
這裏是我的對象(略去了其他屬性)
namespace Omeda.Customer
{
[Serializable()]
[XmlRoot("Customer")]
public class Customer : Error
{
[XmlArray("CustomerDemographics")]
[XmlArrayItem("CustomerDemographic", typeof(CustomerDemographic))]
public Omeda.Customer.CustomerDemographic[] CustomerDemographics { get; set; }
}
}
而且這裏是我使用的反序列化方法(再次,代碼ommitted爲簡潔起見)
private T request_Get<T>(string url) where T : new()
{
object returnObject = new T();
try
{
var request = WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "text/xml";
request.Headers.Add("x-omeda-appid", this.API_KEY);
request.Timeout = 50000;
using (var response = request.GetResponse())
{
using (var responseStream = response.GetResponseStream())
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
returnObject = (T)serializer.Deserialize(responseStream);
}
}
}
catch (WebException ex)
{
...
}
return (T)returnObject;
}
一旦這個對象返回,customer.CustomerDemographics.IsFixedSize
返回true。
任何關於如何解決這個問題的幫助,以及爲什麼會發生這種情況會很好。
您是否試圖序列化這些CustomerDemographic節點到集合呢? – 2012-02-09 11:27:17
你是什麼意思?使用泛型而不是數組? – seanxe 2012-02-09 11:35:25