.NET, C #, Reflection: lista os campos de um campo que, por sua vez, possui campos

No .NET & C #, suponhaClassB tem um campo que é do tipoClassA. Pode-se facilmente usar o métodoGetFields listarClassBcampos. No entanto, eu queroAlém disso listar os campos daquelesClassB campos quesi mesmos tem campos. Por exemplo,ClassBcampox tem camposb, sei. Eu gostaria de (programaticamente) listar esses campos (como sugerido pelos meus comentários no código abaixo).

class ClassA
    {
    public  byte    b ;
    public  short   s ;
    public  int i ;
    }

class ClassB
    {
    public  long    l ;
    public  ClassA  x ;
    }

class MainClass
    {
    public static void Main ( )
        {
        ClassA myAObject = new ClassA () ;
        ClassB myBObject = new ClassB () ;

        //  My goal is this:
        //    ***Using myBObject only***, print its fields, and the fields
        //    of those fields that, *themselves*, have fields.
        //  The output should look like this:
        //    Int64   l
        //    ClassA  x
        //               Byte   b
        //               Int16  s
        //               Int32  i

        }
    }

questionAnswers(5)

yourAnswerToTheQuestion