第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

DataContractSerializer - 不反序列化子列表 - List<T>

DataContractSerializer - 不反序列化子列表 - List<T>

C#
明月笑刀無情 2021-11-07 19:27:45
我正在嘗試使用 DataContractSerializer 反序列化以下 XML。<?xml version="1.0" encoding="utf-8"?><order>  <header>    <cust>1</cust>    <bill>2</bill>    <ship>3</ship>    <nbr>123456</nbr>  </header>  <details>    <detail>      <nbr>123456</nbr>      <part>1227</part>      <qty>2</qty>    </detail>  </details></order>我在反序列化子<detail></detail>段時遇到了困難,這始終是null. 我的班級結(jié)構(gòu)如下:[DataContract(Name = "order", Namespace ="")]public class Order{    [DataMember(Name = "header", Order = 0)]    public Head head { get; set; }    [DataMember(Name = "details", Order = 1)]    public Details details { get; set; }    public Order()    {    }}[DataContract(Name = "header", Namespace ="")]public class Head{    [DataMember(Name = "cust", Order = 0)]    public string customerNbr { get; set; }    [DataMember(Name = "bill", Order = 1)]    public string billNbr { get; set; }    [DataMember(Name = "ship", Order = 2)]    public string shipmentNbr { get; set; }    [DataMember(Name = "nbr", Order = 3)]    public string orderNbr { get; set; }    public Head()    {    }}[DataContract(Name = "details")]public class Details{    [DataMember(Name = "detail", Order = 0)]    public List<Detail> DetailList { get; set; }    public Details()    {        this.DetailList = new List<Detail>();    }}[DataContract(Name = "detail")]public class Detail{    [DataMember(Name = "nbr", Order = 0)]    public string orderNbr { get; set; }    [DataMember(Name = "part", Order = 1)]    public string partNbr { get; set; }    [DataMember(Name = "qty", Order = 2)]    public decimal orderQty { get; set; }    public Detail()    {    }}在我的主程序中,我正在閱讀 XML 文檔并使用以下內(nèi)容對其進行反序列化:XDocument readDoc = XDocument.Load(fileName);Order createOrder = null;DataContractSerializer ser = new DataContractSerializer(typeof(Order));createOrder = (Order)ser.ReadObject(readDoc.CreateReader());我該怎么做才能使詳細信息段正確反序列化?
查看完整描述

1 回答

?
慕哥9229398

TA貢獻1877條經(jīng)驗 獲得超6個贊

問題是您的數(shù)據(jù)協(xié)定類與實際 xml 結(jié)構(gòu)所需的不同。


您可以通過對模型進行小幅修改來解決此問題。


設(shè)置Detail類的命名空間以匹配其他類中的命名空間,即:空白值。

[DataContract(Name = "detail", Namespace = "")]

public class Detail

{

    //same stuff here...

}

使您的 Details 類成為數(shù)據(jù)協(xié)定的集合。

[CollectionDataContract(Name = "details", Namespace = "")]

public class Details : Collection<Detail> { }

您可以查看此以獲取有關(guān)集合和數(shù)據(jù)協(xié)定序列化的更多詳細信息。


希望這可以幫助!


查看完整回答
反對 回復(fù) 2021-11-07
  • 1 回答
  • 0 關(guān)注
  • 206 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號