ジェネリック型のメソッドやジェネリックメソッドを呼び出す場合、引数リストの型はすべて具体的な型に型付けされている必要があります。 型付けされていない状態で呼び出した場合、例外InvalidOperationExceptionがスローされます。 そのため、引数リストにジェネリック型の型パラメータおよびジェネリックメソッドの型パラメータを含む場合は、呼び出す時点で何らかの具体的な型に型付け(置き換え)されている必要があります。

ジェネリック型(Type)ではType.MakeGenericTypeメソッド(関連:§.ジェネリック型の型情報)、ジェネリックメソッド(MethodInfo)ではMethodInfo.MakeGenericMethodメソッドを呼び出すことによって、型パラメータを具体的な型に置き換え、構築された(型付けされた)ジェネリック型・ジェネリックメソッドを取得することができます。

すべての型パラメータが具体的な型に型付けされた状態のMethodInfoでは、通常のMethodInfoと同様にInvokeメソッドで呼び出すことができます。

MethodInfoでジェネリック型のメソッド/ジェネリックメソッドを呼び出す .NET Standard 2.1/.NET Core 2.1
Imports System
Imports System.Reflection

' 型パラメータTCを取るジェネリック型
Class C(Of TC)
  ' ジェネリック型の型パラメータTCを引数にとるメソッド
  Public Overloads Sub M(ByVal _tc As TC)
    Console.WriteLine($"M({GetType(TC)} = {_tc})")
  End Sub

  ' ジェネリック型の型パラメータTCと、メソッドの型パラメータを引数TMにとるジェネリックメソッド
  Public Overloads Sub M(Of TM)(ByVal _tc As TC, ByVal _tm As TM)
    Console.WriteLine($"M({GetType(TC)} = {_tc}, {GetType(TM)} = {_tm})")
  End Sub
End Class

Class Sample
  Shared Sub Main()
    ' ジェネリック型定義(C(Of))の型情報ではインスタンス作成・メソッド呼び出しはできない
    ' MakeGenericTypeメソッドで具体的な型(C(Of String)など)に型付けする必要がある
    Dim t As Type = GetType(C(Of)).MakeGenericType(GetType(String))
    ' Dim t As Type = GetType(C(Of String)) ' あるいは型付けされた状態の型情報を取得する
    Dim inst As Object = Activator.CreateInstance(t)

    ' 引数リストが(TC)のメソッドMを取得する
    Dim m1 As MethodInfo = t.GetMethod("M", types := New Type() {
      GetType(String) ' 型パラメータTCはMakeGenericTypeでStringに型付けされている
    })

    ' メソッドC(Of String).M(String)を呼び出す
    m1.Invoke(inst, New Object() {"arg"})

    ' 引数リストが(TC, TM)のメソッドMを取得する
    Dim m2 As MethodInfo = t.GetMethod("M",
      genericParameterCount := 1, ' 型パラメータが1つのジェネリックメソッド
      New Type() {
        GetType(String),                    ' 型パラメータTCはMakeGenericTypeでStringに型付けされている
        Type.MakeGenericMethodParameter(0)  ' 型パラメータTMに対応する、ジェネリックメソッドの0番目の型パラメータを表すTypeを指定
      }
    )
    ' MakeGenericMethodを呼び出して、型付けされた状態のMethodInfoを作成する
    Dim m2g As MethodInfo = m2.MakeGenericMethod(
      GetType(Integer) ' 上記の0番目の型パラメータ(TM)を、Integerに型付けする
    )

    ' メソッドC(Of String).M(Of Integer)(String, Integer)を呼び出す
    m2g.Invoke(inst, New Object() {"arg", 42})
  End Sub
End Class
実行結果
M(System.String = arg)
M(System.String = arg, System.Int32 = 42)

Type.InvokeMemberメソッドを使った呼び出しでは、具体的な型に型付けされないジェネリックメソッドを呼び出すと、例外MissingMethodExceptionがスローされます。

すべての型パラメータが型付けされているジェネリック型(ContainsGenericParametersプロパティfalseのType)における、非ジェネリックなメソッド(型パラメータを取らないメソッド)は、通常のメソッドと同様に呼び出すことができます。