Alan James
Alan James

Reputation: 135

How to get access to the functions from a module

I need to get access to the public functions in a module (not a class). This is what I have tried:

    Dim asm As Reflection.Assembly = Assembly.GetExecutingAssembly
    Dim my_modules = asm.GetModules
    For Each my_module In my_modules
        Dim all_methods = my_module.GetMethods
        Stop
    Next

But that doesn't even get down to the module itself, I just get the name of the executable.

Upvotes: 2

Views: 1052

Answers (2)

Meta-Knight
Meta-Knight

Reputation: 17875

As @jmcilhinney said in the comments a Module is like a Class when using reflection. You can access it using GetType or GetTypes method.

Dim asm As Assembly = Assembly.GetExecutingAssembly
Dim my_module = asm.GetType("Module_Full_Name")
Dim allMethods = my_module.GetMethods()

Upvotes: 1

Ondřej
Ondřej

Reputation: 1673

Module in VB.NET is nothing else than static class. You not create instance of static class, just call its members from anywhere in scope where module is declared.

Public Module Mathematics
  Public Function Sum(x As Integer, y As Integer) As Integer
    Return x + y
  End Function
End Module

Class Form1
  Public Sub New()
    InitializeComponent()
    Dim result = Mathematics.Sum(1, 2)
  End Sub
End Class

Upvotes: 0

Related Questions