改变C#中XmlSerializer生成的XML结构我的课程如下publicintBlocksCovered;公共诠释BlocksNotCovered;publicClassInfo(){}publicClassInfo(stringClassName,intBlocksCovered,intBlocksNotCovered){this.ClassName=ClassName;this.BlocksCovered=BlocksCovered;this.BlocksNotCovered=BlocksNotCovered;}}publicclassModule{publicListClassInfintList;公共块覆盖;公共intBlocksNotCovered;公共字符串模块名称;publicModule(){ClassInfoList=newList();BlocksCovered=0;BlocksNotCovered=0;模块名称="";}使用以下序列化程序代码XmlSerializerSerializerObj=newXmlSerializer(typeof(Module));//创建一个新的文件流,将序列化后的对象写入文件TextWriterWriteFileStream=newStreamWriter(@"test.xml");SerializerObj.Serialize(WriteFileStream,报告);WriteFileStream.Close();我可以获得以下XML文件。Fpga::TestMe48Fpga::TestMe248816helloclass.exe例如,如何生成这样的XML:Fpga::TestMe48Fpga::TestMe248816helloclass.exe(顺便说一下,它与问题无关,但您应该避免针对公共字段,因为许多stackoverflow问题引用了很多原因)Q3:简单地说:[XmlElement("Class")]publicListClassInfoList;Q2成为顶级名称;你可以使用[XmlRoot("somethingFun")]publicclassModule{...}Q2remembername:[XmlElement("blocks")]publicintBlocksCovered;(另见[XmlAttribute(...)])Q1删除xsi等可以使用XmlSerializerNamespaces完成:以上是C#学习教程:改变C#中XmlSerializer生成的XML结构全部内容分享。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——XmlSerializerNamespacesns=newXmlSerializerNamespaces();ns.Add("","");varser=newXmlSerializer(typeof(Module));ser.Serialize(目的地,模块,ns);本文收集自网络,不代表立场,如有侵权请点右联系管理员删除。如需转载请注明出处:
