簡體   English   中英

序列化另一個元素內的0-n個元素

[英]Serialize 0-n elements inside another element

我有兩個這樣的課程:

public class Product
{
    public string Name { get; set; }
    public int Id { get; set; }
}

public class Category
{
    public string CategoryName { get; set; }
    public List<Product> Products { get; set; }
}

有什么辦法可以裝飾Category類上的Products屬性,使它像這樣序列化?

    <Container>
      <Category>
        <CategoryName>Unicorn Stuff</CategoryName>
        <Product>
          <Id>1212</Id>
          <Name>Unicorn Dust</Name>
        </Product>
        <Product>
          <Id>1829</Id>
          <Name>Horn Extension</Name>
        </Product>
        <Product>
          <Id>27373</Id>
          <Name>Facemask with hole</Name>
        </Product>
      </Category>
      <Category>
        <CategoryName>Pixie</CategoryName>
        <Product>
          <Id>222</Id>
          <Name>Pixie Dust</Name>
        </Product>    
      </Category>
    </Container>

請注意,每個類別都有類別元素(類別名稱)和0-n產品子元素。

...還是我必須下拉菜單以更手動的方式生成文檔?

(這不是我本來會設計xml結構的方式,但是嘿-我們生活在一個不完善的世界中)

[XmlElement]屬性放在列表中:

public class Category
{
    public string CategoryName { get; set; }
    [XmlElement]
    public List<Product> Products { get; set; }
}

我相信XSD.exe可以為您的類創建XSD。 然后,您只需使用基本的XmlSerializer序列化到您的XSD。

或者,您可以創建XSD,並從XSD生成類。 兩種方法都應該起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM