Loading DLL at Runtime

Published 01 November 05 12:24 PM | adrian

Terkadang kita perlu melakukan loading DLL ketika runtime, skenario yang umum terjadi pada sistem yang pluggable. Kita dapat menggunakan System.Reflection untuk melakukannya. Here’s the code (jangan lupa tambahkan Imports System.Reflection):

Dim assemblyPackage As Assembly = Assembly.LoadFrom(dllPath)

Pertama, load file DLL/EXE yang Anda butuhkan. Shared Function LoadFrom akan mengambil parameter path assembly yang akan dibuka.

Setelah assembly berhasil dibuka, maka langkah-langkah selanjutnya tergantung kebutuhan Anda. Dalam kesempatan ini, kita akan mencoba untuk mendeklarasikan sebuah variabel dari Class yang bersifat Singleton.

Asumsikan bahwa nama Class yang akan kita buat adalah ClassA, maka kode berikut menjelaskan caranya:

For Each typeTest As Type In assemblyPackage.GetTypes

  If typeTest.Name = “ClassA” Then

    Dim obj As Object = _

      typeTest.InvokeMember("Instance", BindingFlags.GetProperty, _

      Nothing, Nothing, Nothing)

  End If

Next

Variabel obj akan berisi instance dari ClassA.

Share this post: | | | |
Filed under:

Comments

# adrian said on November 1, 2005 05:26 PM:

Saya jadi inget "late-binding" di "dunia lama" :).

Btw, ini cuma jalan untuk managed assembly kan ?

# adrian said on November 1, 2005 07:19 PM:

AFAIK, it runs on Managed Assembly, only.

Preliminary test on Native Assemblies returns FileLoadException.

# Danni Afasyah said on September 6, 2007 03:08 PM:

I've come to a case, where, in my application, i need to load the assembly dynamically. Its not a