// SO: https://stackoverflow.com/questions/66394287/group-group-c-sharp-class-properties-into-xmlelement-attributes-during-serializa/
using System;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
public class Program
{
public static void Main()
string xml = @"<SomeClass>
<Element1 attribute1=""1"" attribute2=""2"" />
<Element2 attribute1=""3"" attribute2=""4"" attribute3=""5"" attribute4=""6"" />
</SomeClass>";
XmlSerializer serializer;
SomeClass myClass;
// deserialize
using (StringReader sr = new StringReader(xml))
serializer = new XmlSerializer(typeof(SomeClass));
myClass = (SomeClass)serializer.Deserialize(sr);
}
myClass.Dump();
xml = "";
// serialize
using (var stringWriter = new StringWriter())
using (var writer = XmlWriter.Create(stringWriter))
serializer.Serialize(writer, myClass);
xml = stringWriter.ToString();
Console.WriteLine(xml);
public class SomeClass
public Element1 Element1 { get; set; }
public Element2 Element2 { get; set; }
public class Element1
[XmlAttribute]
public int attribute1 { get; set; }
public int attribute2 { get; set; }
public class Element2
public int attribute3 { get; set; }
public int attribute4 { get; set; }