15. oktober 2002 - 13:29Der er
8 kommentarer og 1 løsning
Load assembly.
Hej Eksperter. Jeg skal bruge en funktion i vb .net og den virker ikke! Funktionen er her under. Jeg har også prøvet at loade system.drawing og lign men får en fejl hver gang. Mit spg er hvordan jeg kan loade en assembly? Hvad skal jeg skrive som streng parameter i System.Reflection.Assembly.Load( ??? ).
assem = System.Reflection.Assembly.Load("C:\Documents and Settings\Lars Ibsen\My Documents\Visual Studio Projects\test\bin\test.exe") har jeg prøvet men det lykkes ikke...
Yes. Så virker det endelig. Det er måske bare mig(/et par stykker til) men det er nu ikke specielt indlysende.
Her er min løsning som jeg håber andre vil få glæde af i vb .net: Public Function getInstance(ByVal strObjectName As String) dim assem as System.Reflection.Assembly = system.Reflection.Assembly.GetExecutingAssembly
dim mytype = assem.GetType(strObjectName) Return System.Activator.CreateInstance(mytype)) End Function
Sådan kalder jeg min funktion: Dim dbAdapter = getInstance("NN2002.storage.StorageDbAdapter")
Kichian bruger du selv det at oprette objekter ud fra en streng?
Jeg har ikke selv haft brug for at oprette objekter ud fra en streng. Men en af mine kolleger valgte løsningen, fordi det system han havde ansvaret for ikke kunne tolerere nedetid. Defor skulle evt. forbedredringer/fejlrettelser ske on-line. Og dette blev løst vha. dynamisk loading af objekter via konf-fil/registry.
Den dynamiske loading af objekter bør nok pakkes ind i en fornuftig Factory-Klasse. Og i sidste instans nok helt undgås medmindre der er meget gode argumenter for at bruge din getInstance, såsom nedetid eller muligheden for plug-ins.
Ja der er ingen tvivl om at det er en factory som skal bruges. Pt arbejder jeg på et større projekt som afslutning på mit studie og så er det jo vigtigt at realisere en fornuftig brug af de lærte design patterns.
Synes godt om
Ny brugerNybegynder
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.