c# – 没有根元素的序列化数组
发布时间:2020-12-15 17:38:34 所属栏目:百科 来源:网络整理
导读:我正在尝试在序列化 XML时获得此结果 Test Category FileNameC:test.txt/FileName !-- Note that here this is an array of a simple class with two fields without root -- Prop11/Prop1 Prop22/Prop2 Prop14/Prop1 Prop25/Prop2 !-- End array -- /Categ
我正在尝试在序列化
XML时获得此结果
<Test> <Category> <FileName>C:test.txt</FileName> <!-- Note that here this is an array of a simple class with two fields without root --> <Prop1>1</Prop1> <Prop2>2</Prop2> <Prop1>4</Prop1> <Prop2>5</Prop2> <!-- End array --> </Category> </Test> 我已经尝试过不同的东西了 [Serializable] [XmlRoot("Test")] public class Test { [XmlElement("Category")] public List<Category> Category= new List<Category>(); } [Serializable] [XmlRoot("Category")] public class Category { [XmlElement("FileName")] public string FileName { get; set; } [XmlElement("Property")] public List<Property> Properties = new List<Property>(); } [Serializable] public class Property { public string Prop1 { get; set; } public string Prop2 { get; set; } } 但是我仍然得到这个输出: <Test> <Category> <FileName>C:test.txt</FileName> <Property> <Prop1>1</Prop1> <Prop2>2</Prop2> </Property> <Property> <Prop1>4</Prop1> <Prop2>5</Prop2> </Property> </Category> </Test> 如何删除属性标签? 解决方法
如果您真的需要确切的输出,如上所述,您可以使用以下解决方法:
[Serializable] public partial class Test { public List<Category> Category; } [Serializable] public partial class Category { [XmlElement("FileName")] public string FileName; [XmlElement("Prop1")] [XmlElement("Prop2")] [XmlChoiceIdentifier("propName")] public string[] Properties; [XmlIgnore] public PropName[] propName; } public enum PropName { Prop1,Prop2,} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |