- PR -

リフレクション オーバーロードされていて引数のないメソッドの取得

1
投稿者投稿内容
hei
ベテラン
会議室デビュー日: 2006/09/07
投稿数: 78
投稿日時: 2007-03-03 23:30
お世話になっています。
リフレクションで次のクラスのメソッドを取得したいのですが、
上の引数を持たないメソッドの取得ができません。
コード:

Public Class TestClass
Public Sub TestMethod()
End Sub
Public Sub TestMethod(ByVal arg As Integer)
End Sub
End Class


単に
Dim mi As MethodInfo = GetType(TestClass).GetMethod("TestMethod")
としてはSystem.Reflection.AmbiguousMatchExceptionが投げられます。

Dim ts() As Type = {GetType(Integer)}
Dim mi As MethodInfo = GetType(TestClass).GetMethod("TestMethod", ts)
とすれば、下のメソッドの取得はできますが・・・

よろしくお願いします。



[ メッセージ編集済み 編集者: hei 編集日時 2007-03-03 23:41 ]
hei
ベテラン
会議室デビュー日: 2006/09/07
投稿数: 78
投稿日時: 2007-03-03 23:46
解決しました。

Dim ts(-1) As Type
Dim mi As MethodInfo = GetType(TestClass).GetMethod("TestMethod", ts)
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2007-03-03 23:53

結局はそれと同じなんですが、一応 Type.EmptyTypes 静的フィールドが存在します。
hei
ベテラン
会議室デビュー日: 2006/09/07
投稿数: 78
投稿日時: 2007-03-04 00:01
Type.EmptyTypesの方がわかりやすいですね。
ありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)