using System.Xml.Serialization;
public class Node : Module1.Node1, Module2.Node2
public string SomeOtherAttribute { get; set; }
public int SomeAttribute { get; set; }
{ [XmlElement(ElementName="Node")]
public Node _node { get; set; }
public Node1 Node { get {return (Node1)_node ;} }
public int SomeAttribute { get; set; }
{ [XmlElement(ElementName="Node")]
public Node _node { get; set; }
public Node2 Node { get {return (Node2)_node ;} }
public string SomeOtherAttribute { get; set; }
public Module1 Module1 { get; set; }
public Module2 Module2 { get; set; }
public static void Main(string[] args)
<Node SomeAttribute = ""123"" />
<Node SomeOtherAttribute = ""Something"" />
XmlSerializer serializer = new XmlSerializer(typeof(OrderedItem));
using (TextReader reader = new StringReader(xml))
var result = (OrderedItem)serializer.Deserialize(reader);
System.Console.Out.WriteLine(result.Module1.Node.SomeAttribute);
System.Console.Out.WriteLine(result.Module2.Node.SomeOtherAttribute);