问题描述
usingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Linq;usingSystem.Text;usingSystem.Xml.Serialization;namespaceSerializerSample{publicclassTest{publicstringName{get;set;}publicstringValue{get;set;}}classProgram{staticvoidMain(string[]args){List<Test>test=newList<Test>();for(inti=0;i<2;i++){test.Add(newTest(){Name=i.ToString(),Value=i.ToString()});}XmlAttributeOverridesoverides=newXmlAttributeOverrides();XmlAttributesatts=newXmlAttributes();atts.XmlRoot=newXmlRootAttribute("Root");overides.Add(typeof(List<Test>),atts);XmlSerializerserializer=newXmlSerializer(typeof(List<Test>),overides);XmlSerializerNamespacesnamespaces=newXmlSerializerNamespaces();namespaces.Add(string.Empty,string.Empty);using(TextWriterwriter=newStreamWriter("1.xml")){serializer.Serialize(writer,test,namespaces);}Console.ReadKey();}}}
如上述代码,若不想使用如下代码的情况下[XmlRoot("root")]publicclassTestList{[XmlArrayItem("other")]publicList<Test>list{get;set;}}
使得原本应该序列化成如下Xml文档的内容<Test><Name>0</Name><Value>0</Value></Test>
生成为<other><Name>0</Name><Value>0</Value></other>
应该如何处理?求大神指导!!!
解决方案
解决方案二:
如果想把“test”改成“other”,就在test类上修改xml序列化属性
解决方案三:
引用1楼rocmemory的回复:
如果想把“test”改成“other”,就在test类上修改xml序列化属性
要修改什么属性?我修改了不管用的,会出现异常
解决方案四:
[XmlElement(ElementName="Test")]
解决方案五:
引用3楼feiyun_Web的回复:
[XmlElement(ElementName="Test")]
你这个用在Test类上面会不报异常么?
解决方案六:
引用4楼u013431840的回复:
Quote: 引用3楼feiyun_Web的回复:
[XmlElement(ElementName="Test")]你这个用在Test类上面会不报异常么?
我看错题目了可以这样[Serializable][XmlType("other")]
解决方案七:
引用5楼我是飞云的回复:
Quote: 引用4楼u013431840的回复:
Quote: 引用3楼feiyun_Web的回复:
[XmlElement(ElementName="Test")]你这个用在Test类上面会不报异常么?
我看错题目了可以这样[Serializable][XmlType("other")]
+1