OK, więc na początku myślałem, że to dość łatwe, a może jest i jestem po prostu zbyt zmęczony - ale oto, co próbuję zrobić. Że mam następujące obiekty:Rekursywnie uzyskiwanie właściwości i właściwości dziecka obiektu
public class Container
{
public string Name { get; set; }
public List<Address> Addresses { get; set; }
}
public class Address
{
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public List<Telephone> Telephones { get; set; }
}
public class Telephone
{
public string CellPhone { get; set; }
}
Co muszę być w stanie zrobić, to „spłaszczyć” nazwy właściwości pojemników w celu sznurku (w tym wszystkie właściwości dziecka i właściwości podrzędnych właściwości podrzędnych), które mogłyby wyglądać tak:
Container.Name, Container.Addresses.AddressLine1, Container.Addresses.AddressLine2, Container.Addresses.Telephones.CellPhone
Czy to ma jakiś sens? Nie mogę owinąć go wokół mojej głowy.
Musisz jasno określić, w jaki sposób określisz, co jest własnością dziecka. Tutaj zakładasz, że typ listy zostanie spłaszczony jako typ T. Co jeśli istnieje właściwość public Telephone Number {get; zestaw; } (zamiast listy)? Czy byłoby inaczej? Czy twoje właściwości zawsze będą albo typami pierwotnymi, albo Listą, gdzie T jest typem złożonym? –
mellamokb
możliwy duplikat [zagnieżdżonych klas i rekurencji] (http://stackoverflow.com/questions/811098/nested-classes-and-recytion) – nawfal