Avatar billede KOH Novice
22. januar 2015 - 13:51 Der er 3 kommentarer og
1 løsning

Reflection - nested fields

Hej

Hvordan får jeg brugt getvalue og setvalue på nested properties på et field med reflection, jeg kan godt hente i dette tilfælde
property Person.name men de underliggende mangler jeg at kunne hente data fra. - så hvordan henter jeg person.Address.xx funktionen er dynamisk da jeg ikke kender object før runtime

    public class App
    {
        public App()
        {
            Person _person = new Person();
            _person.name = "Jens Andersen";
            _person.address.address = "netvej";
            _person.address.zipcode = 8900;
        }
    }

    public class Person
    {
        public string name { get; set; }

        public Address address;

        public Person()
        {
            address = new Address();
        }
    }

    public class Address
    {
        public string address { get; set; }
        public int zipcode { get; set; }
    }
Avatar billede arne_v Ekspert
22. januar 2015 - 15:32 #1
public App()
        {
            Person _person = new Person();
            _person.name = "Jens Andersen";
            _person.address.address = "netvej";
            _person.address.zipcode = 8900;
            object o = _person;
            object o2 = o.GetType().GetField("address").GetValue(o);
            object o3 = o2.GetType().GetProperty("zipcode").GetValue(o2);
            Console.WriteLine(o3);
        }
Avatar billede KOH Novice
26. januar 2015 - 09:37 #2
Hej Arne

Tak for løsning - smid svar, havde håber lidt at man kunne forespørge direkte ind i første object, men kan godt set at man skal hente de enkelte objekter ud først
Avatar billede arne_v Ekspert
26. januar 2015 - 14:13 #3
Du kan godt droppe de midlertidige variable og lave det en one liner, men det bliver bare en lang linie saa!

Og svar.
Avatar billede KOH Novice
26. januar 2015 - 14:32 #4
Takker, det object jeg kommer med og skal lave reflection kender jeg aldrig typen af før det skal behandles, så lidt skal der til - tak for svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester