您可以按属性集在一组属性内序列化吗?

我想要在运行的循环中将一组属性全部序列化为 XML 文件。该循环在一组文件夹内运行。根据我当前的实现,它只显示最后一组属性。


这是我当前的代码,


Student  obj = JsonConvert.DeserializeObject < StudentModel  (File.ReadAllText(file));




string Name = studentModel.name;

string number = studentModel.number;


string testPath = rootDirectory;


XmlSerializer serializer = new XmlSerializer(typeof(StudentModel));

System.IO.StreamWriter writer = new System.IO.StreamWriter(testPath + "\\Test.xml");

serializer.Serialize(writer, studentModel);

writer.Close();

我当前的输出是


<?xml version="1.0" encoding="utf-8"?>

<StudentModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">


<name>Max</name>

<number>1</number>


</StudentModel>

所需的输出是


<?xml version="1.0" encoding="utf-8"?>

<StudentModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">


<name>Max</name>

<number>1</number>


</StudentModel>


<StudentModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">


<name>Amy</name>

<number>2</number>


</StudentModel>


<StudentModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">


<name>Jack</name>

<number>3</number>


</StudentModel>


交互式爱情
浏览 98回答 1
1回答

潇潇雨雨

在我看来,您想要做的是将列表(或数组)序列化为StudentModelxml。目前,您仅序列化一个实例,StudentModel并在循环的每次迭代中覆盖生成的 xml,留下最后一项。您可以做的是创建一个具有List()ofStudentModel作为属性的类并序列化该类实例,不再需要循环。新类中的 List 属性将如下所示:[XmlArray("StudentModels"), XmlArrayItem(typeof(StudentModel), ElementName = "StudentModel")]&nbsp;public List<StudentModel> StudentModelList{ get; set; }
打开App,查看更多内容
随时随地看视频慕课网APP