请教关于XmlSerialezer序列化List的问题

问题描述

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

时间: 2024-09-30 19:35:19

请教关于XmlSerialezer序列化List的问题的相关文章

请教一个XML序列化的问题

问题描述 定义了一个类,该类包含字符串类型的属性A,如果实例化后对A赋空值并将对象序列化为XML字符串后,输出的xml字符串显示为<A/>,这个不影响反序列化,但怎样才能让其输出为<A></A>呢? 解决方案 解决方案二:publicclassMyXmlTextWriter:XmlTextWriter{publicMyXmlTextWriter(Streamstream):base(stream,Encoding.UTF8){}publicoverridevoidWri

c++类的序列化问题请教

问题描述 c++类的序列化问题请教 各位大神,小弟需要将一个c++类序列化为json来进行网络传输,有一个小小问题想请教一下,我在网上查了一下,很多都说要用jsoncpp.看了很久还是不知道这个序列化的方法. 现在假设我有一个类如下: class A { public: int A; void hello(); } 请问我要怎么进行序列化呢 解决方案 简单的话,直接拼接字符串就可以了. 解决方案二: 序列化使用jsoncpp或者之类的库,还是需要自己写序列化代码的 参考:http://qiusu

c#4 0-C# 请教XML序列化时,内存错误问题如何解决

问题描述 C# 请教XML序列化时,内存错误问题如何解决 环境C#4.5 E5 16G内存 代码: try { CommonHelper.CGCollect(); string xml = XmlHelper.XmlSerialize(listKeyWords, Encoding.Default); Mutex m = new Mutex(); if (!string.IsNullOrEmpty(xml)) { DocHelper.writeXC(xml, string.Format("{0}{

请教model序列化/反序列化的问题

问题描述 一个Model[Serializable]publicclassActLog{privateint_logid=0;privatestring_logcontent="";privateint_userid=0;privatestring_usertype="";privateDateTime_addtime=DateTime.Now;publicintlogid{get{return_logid;}set{_logid=value;}}publicstr

请教C#下如何序列化自定义结构或类?

问题描述 各位高手:请问在C#中使用Binaryformater将自定义数据结构序列化时,如定义结构structSTData{intnum;chartype;shortarr;doublex;};结构采用单字节对齐方式,序列化后字节的数组比结构实际的字节数要大几倍,如何让序列化后字节数组的大小等于实际结构的字节数?由于需要C#通过UDP与VC6之间进行数据通信,在VC6中结构使用单字节对齐后,转换后的字节数组就是实际结构的字节之和,而如果C#转换后的字节数组大小与VC6的字节数组大小不同就无法确

请教XmlSerializer序列化XML文件的问题

问题描述 请教以下的XML文件使用Xml.Serialization如何序列化,<?xmlversion="1.0"encoding="utf-8"?><shoppingListxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"><itemname=&qu

C# 请教XML序列化时,内存错误问题如何解决

问题描述 环境C#4.5E516G内存预计序列化后数据大小1G左右这个问题如何解决呢?代码:[List<KeyWords>listKeyWords]try{CommonHelper.CGCollect();stringxml=XmlHelper.XmlSerialize(listKeyWords,Encoding.Default);Mutexm=newMutex();if(!string.IsNullOrEmpty(xml)){DocHelper.writeXC(xml,string.Form

请教C#中自定义结构序列化的问题?

问题描述 各位高手:请问在C#中使用Binaryformater将自定义数据结构序列化时,如定义结构structSTData{intnum;chartype;shortarr;bytesig;doublex;};结构采用单字节对齐方式,序列化后字节的数组比结构实际的字节数要大几倍,如何让序列化后字节数组的大小等于实际结构的字节数?由于需要C#通过UDP与VC6之间进行数据通信,在VC6中结构使用单字节对齐后,转换后的字节数组就是实际结构的字节之和,而如果C#转换后的字节数组大小与VC6的字节数组

js-form 表单中select的序列化问题?

问题描述 form 表单中select的序列化问题? 请教一下,如何对select的值进行序列化- 原来的方法:对Select 无效啊 serializeObject = function(form) { var o = {}; $.each(form.serializeArray(), function(index) { if (this['value'] != undefined && this['value'].length > 0) {// 如果表单项的值非空,才进行序列化操