C# 序列化另一个元素中的0-n个元素
我有两门课是这样的:C# 序列化另一个元素中的0-n个元素,c#,.net,xml-serialization,xmlserializer,C#,.net,Xml Serialization,Xmlserializer,我有两门课是这样的: 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; } } 公共类产品 { 公共字符串名称{ge
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; }
}
公共类产品
{
公共字符串名称{get;set;}
公共int Id{get;set;}
}
公共类类别
{
公共字符串CategoryName{get;set;}
公共列表产品{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>
独角兽的东西
1212
独角兽尘
1829
喇叭延伸
27373
带孔面罩
精灵
222
仙尘技术
请注意,每个类别都有类别元素(类别名称)和0-n个产品子元素
…还是我必须用更手动的方式生成文档
(这不是我设计xml结构的方式,但嘿-我们生活在一个不完美的世界)我相信XSD.exe可以从类中为您创建XSD。然后,只需使用基本XmlSerializer将其序列化到XSD
或者,您可以创建XSD,并从XSD生成类。任何一种方法都可以。将
[xmlement]
属性放在列表中:
public class Category
{
public string CategoryName { get; set; }
[XmlElement]
public List<Product> Products { get; set; }
}
公共类类别
{
公共字符串CategoryName{get;set;}
[XmlElement]
公共列表产品{get;set;}
}
当您尝试序列化它时会发生什么?John>>我得到一个Products元素,其中包含产品。如果您没有XSD,您可以使用诸如创建XSD之类的工具。我不能相信我在询问之前没有尝试过这一点。我已经在实际类中拥有了大约50个XmlElement属性。太好了,谢谢!:)@杰森:很高兴这有帮助。你能在你的问题中贴一个原始XML的例子吗?