Leia uma estrutura de árvore XML recursivamente em uma Lista <T> com listas filho <T>

Eu tenho um XML como este:

E eu tenho uma classe de membro com a propriedade Nom

Como posso ler todas as unidades e suas unidades filhas em vários genéricosList<Unit> que pode ter novamente filhosList<Unit> de forma recursiva usando a mais recente tecnologia .NET?

<Root>
  <Units Name="Test1">
    <Unit Name="Test11" />
    <Unit Name="Test12">
      <Unit Name="Test21" />
      <Unit Name="Test22" />
      <Unit Name="Test23">
        <Unit Name="Test31" />
        <Unit Name="Test32" />  
        <Unit Name="Test33" />
      </Unit>
      <Unit Name="Test24" />
    </Unit>
  </Units>
  <Units Name="Test2" />
    <!-- ... -->
  <Units Name="Test3" />
    <!-- ... -->
  <Units Name="Test4" />
</Root>

questionAnswers(4)

yourAnswerToTheQuestion