我有两个这样的类(class):
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; }
}
关于c# - 将 0-n 个元素序列化到另一个元素内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5795672/