Imports System.Reflection
For Each nestedtype in p.Gettype().GetNestedTypes()
For Each prop in nestedtype.GetProperties(BindingFlags.Instance Or BindingFlags.Public Or BindingFlags.NonPublic Or BindingFlags.Static)
Console.WriteLine(nestedtype.Name & " => " & prop.Name)
Public Property Name As String
Public Property AddressDetail As Address
Public Property Street As String
Public Property CountryDetail As Country
Public Property CountryName As String