Chiamata a dll esterne

venerdì 29 aprile 2005 - 11.13

contiello Profilo | Senior Member

Salve ragazzi ho il seguente quesito da porre
immaginate di dover utilizzare un funzione presente in una dll esterna al vostro progetto
in assenza di particolari esigenze includereste nei riferimenti del progetto la dll ed usereste la funzione.
Mettiamo però il caso che l'utilizzo della funzione sia completamente deciso in fase di esecuzione
.. come si puo' invocare a runtime una funzione esterna ?? grazie

contiello Profilo | Senior Member

ho provato ad usare il metodo ma non riesco a cavarne un ragno ....
potreste farmi un piccolo esempio??
ho creato una dll con una semplice funzione che restituisce la stringa Ciao
ho usato le seguenti istruzioni per caricare la dll e fin qui tutto ok!
Dim SampleAssembly As [Assembly]
SampleAssembly = [Assembly].Load("ClassLibrary1")
dopodiche però non riesco a chiamare la funzione
grazie

contiello Profilo | Senior Member

ho letto l'articolo al link...
purtroppo il mio caso è un pò + complicato ....
in quanto io non dichiaro l'oggetto come classe , ma uso il metodo [Assembly].Load
ecco il codice che uso l'errore è sull'ultima istruzione ... mi sapete dire perchè?
la funzione che chiamo non ha parametri

Dim SampleAssembly As [Assembly]
SampleAssembly = [Assembly].Load("ClassLibrary1")
Dim typeobj As Type = SampleAssembly.GetType
Dim method As MethodInfo = typeobj.GetMethod("Prova")
Me.TextBox1.Text = method.Invoke(typeobj, Nothing)



grazie

contiello Profilo | Senior Member

niente da fare...
sono alla frutta...
via allego i 2 piccoli progetti
quello denominato dllchiamante è un progetto web composta da una pagina aspx
sul bottone ho provato ad inserire il codice che richiama la dll esterna.
Quest'ultima presente nel progetto classlibrary è una semplice funzione che restituisce la stringa Ciao

grazie

contiello Profilo | Senior Member

ho risolto!!!
ecco il codice funzionante ..

Dim ClsInterna As [Assembly] = [Assembly].LoadFrom("C:\pippo\ClassLibrary1.dll")
Dim c As Object = ClsInterna.CreateInstance("ClassLibrary1.NomeClasse")
Dim method As MethodInfo
method = c.GetType.GetMethod("Prova")
Dim params(method.GetParameters.Length - 1) As Object
Dim i As Integer
Dim nomeparametro As String
Dim resx As String
resx = method.Invoke(Nothing, Nothing)
Me.TextBox1.Text = resx

ciao grazie!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5