Avatar billede brian0905 Nybegynder
19. oktober 2004 - 15:09 Der er 7 kommentarer og
1 løsning

Oprette klasse instans fra en string

Jeg har en applikation der loader en masse informationer fra en xml fil. Jeg har blandt andet en streng i min xml som fortæller hvilken klasse dette xml skal parses til. Jeg vil så nødigt til at lave en switch på dette navn, da det begrænser mig meget til nogle få klasser (plus at jeg skal vedligeholde det efterfølgende). Findes der en måde ud fra navnet at instantiere et objekt af den type der står i mit xml?

<root>
<klasse navn="Bruger">
<attribut navn="alder" value="30"/>
</klasse
</root>

Ud fra dette vil jeg gerne lave en instans af min Bruger klasse og sætte attributten alder til 30...
Avatar billede arne_v Ekspert
19. oktober 2004 - 15:14 #1
Ja.

Object o = (Assembly.Load(dllname).CreateInstance(classname);

vil oprette et objekt af den angiven type.
Avatar billede arne_v Ekspert
19. oktober 2004 - 15:14 #2
Object o = Assembly.Load(dllname).CreateInstance(classname);
Avatar billede arne_v Ekspert
19. oktober 2004 - 15:19 #3
o.GetType().GetProperty(propertyname).SetValue(o, value, null);

kan bruges til at sætte en property angivet ved navn
Avatar billede brian0905 Nybegynder
19. oktober 2004 - 15:20 #4
Er der nogen måde hvorpå jeg kan typekonvertere mit Object o til typen "Bruger" i samme omgang (eller et vilkårligt andet object defineret ud fra dette navn) ?
Avatar billede arne_v Ekspert
19. oktober 2004 - 15:32 #5
Sagtens.

Bruger b = (Bruger)o;

Men har du ikke samme problem igen så ?  (brug for en switch)
Avatar billede brian0905 Nybegynder
19. oktober 2004 - 15:50 #6
Jo, det var netop det jeg gerne ville ud over..... altså implicit vide ud fra Type() måske at dette var en Bruger......

Hmmm........
Tror jeg laver noget arv og noget abstrakt hurlumhej, det må være løsningen :-)

Lav lige et svar
Avatar billede arne_v Ekspert
19. oktober 2004 - 15:53 #7
ok
Avatar billede brian0905 Nybegynder
20. oktober 2004 - 15:54 #8
takker.....
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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