using System.Xml.Serialization;
using System.Collections.Generic;
public static void Main()
string xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
" <GroupName>ANTRIEB</GroupName>" +
" <GroupName>missing translation!</GroupName>" +
" <GroupName>BREMSEN</GroupName>" +
XmlSerializer serializer = new XmlSerializer(typeof(DeactivationsXml));
serializer.UnknownElement += Serializer_UnknownElement;
using (TextReader fileStream = new StringReader(xml))
result = (DeactivationsXml)serializer.Deserialize(fileStream);
foreach (var group in result.Groups)
Console.WriteLine(group.Index);
Console.WriteLine(group.Level);
foreach (var name in group.GroupNames)
Console.WriteLine(name.Key + ": " + name.Value.Name);
private static void Serializer_UnknownElement(object sender, XmlElementEventArgs e)
var group = (DeactivationsGroup)e.ObjectBeingDeserialized;
group.GroupNames.Add(e.Element.Name, new GroupName { Name = e.Element.InnerText });
public class DeactivationsXml
public DeactivationsGroup[] Groups { get; set; }
public class DeactivationsGroup
public Dictionary<string, GroupName> GroupNames { get; set; } = new Dictionary<string, GroupName>();
public int Level { get; set; }
public byte Index { get; set; }
[XmlElement("GroupName")]
public string Name { get; set; }