Avatar billede funkyloonie Nybegynder
15. oktober 2002 - 13:29 Der 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( ??? ).


Try
            assem = System.Reflection.Assembly.Load("test.StaticMethods.Methods")

        Catch ex As Exception
            MsgBox("assembly load failed " & ex.Message)
        End Try

Håber virkelig nogen har arbejdet med dette får og kan hjælpe mig!
Avatar billede funkyloonie Nybegynder
15. oktober 2002 - 13:29 #1
assem er erklæret som Dim assem As System.Reflection.Assembly
Avatar billede kichian Nybegynder
15. oktober 2002 - 13:34 #2
Du kan bruge stien til din Assembly-fil.

Se svaret på http://www.eksperten.dk/spm/261784
Avatar billede kichian Nybegynder
15. oktober 2002 - 13:39 #3
Avatar billede funkyloonie Nybegynder
15. oktober 2002 - 13:45 #4
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...
Avatar billede funkyloonie Nybegynder
15. oktober 2002 - 13:56 #5
jeg tror sgu jeg har fået det til at virke... jeg vender lige tilbage senere eller imorgen formiddag. :))
Avatar billede funkyloonie Nybegynder
16. oktober 2002 - 10:37 #6
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?
Avatar billede funkyloonie Nybegynder
16. oktober 2002 - 10:37 #7
dim mytype as type = assem.GetType(strObjectName) er nok lidt pænere løsning
Avatar billede kichian Nybegynder
17. oktober 2002 - 10:26 #8
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.
Avatar billede funkyloonie Nybegynder
17. oktober 2002 - 12:08 #9
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.
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
Kurser inden for grundlæggende programmering

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