在序列化数组时删除根元素

这是一个代码示例:

public class Person { public string FirstName { get; set; } public string LastName { get; set; } } 

 static void Main() { Person[] persons = new Person[] { new Person{ FirstName = "John", LastName = "Smith"}, new Person{ FirstName = "Mark", LastName = "Jones"}, new Person{ FirstName= "Alex", LastName="Hackman"} }; XmlSerializer xs = new XmlSerializer(typeof(Person[]), ""); using (FileStream stream = File.Create("persons-" + Guid.NewGuid().ToString().Substring(0, 4) + ".xml")) { xs.Serialize(stream, persons); } } 

这是输出:

    John Smith   Mark Jones   Alex Hackman   

这是一个问题。 如何摆脱根元素并渲染人像这样:

   John Smith   Mark Jones   Alex Hackman  

谢谢!

这是您想要的格式错误的XML ,不可能通过XmlSerializer获取它,但您可以将ArrayOfPersno元素名称更改为smothing else:

例:

 XmlSerializer xs = new XmlSerializer(typeof(Person[]), new XmlRootAttribute("Persons")); 

会给你:

    John Smith  ... 

IMO你应该使用顶级对象,即

 [XmlRoot("whatever")] public class Foo { [XmlElement("Person")] public List People {get;set;} } 

哪个应序列化为具有多个“Person”子元素的“whatever”元素。