- PR -

件名:【VB.NET】リフレクションでByref引数のメソッドをGetMethodできない

1
投稿者投稿内容
未記入
会議室デビュー日: 2006/07/14
投稿数: 8
投稿日時: 2006-07-14 18:16
NUnitを使って、リフレクションによるPrivateメソッドのテストをしています。

参照渡し引数のメソッドが、GetMethodできません。(Nothingが返ってくる)
値渡し(ByVal)に変えるとGetMethodできます。

ご教授お願いいたします。
----(呼出元はじめ)--------------
<Test()> _
Public Sub testByrefLong_test2()
Dim lng As Long

Dim infoType As Type = GetType(TestClass)

Dim methodInfo As Reflection.MethodInfo _
= infoType.GetMethod("testByrefLong", Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance, Nothing, New Type() {GetType(Long)}, Nothing)

End Sub
----(呼出元おわり)--------------


----(呼出先はじめ)--------------
Public Class TestClass
Private Sub testByrefLong(ByRef lng As Long)

End Sub
End Class
----(呼出先おわり)--------------
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2006-07-14 18:34
引用:

未記入さんの書き込み (2006-07-14 18:16) より:
Dim methodInfo As Reflection.MethodInfo _
= infoType.GetMethod("testByrefLong", Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance, Nothing, New Type() {GetType(Long)}, Nothing)


引数の型指定部分の、GetType(Long)を、GetType(Long).MakeByRefTypeとするか、
.NET Framework 1.?の場合はType.GetType("System.Int64&")
などとしてみてください。
※mscorlib 以外にある型だと、&をつける方はこのままではいけませんが。
未記入
会議室デビュー日: 2006/07/14
投稿数: 8
投稿日時: 2006-07-20 15:42
二重スレにもかかわらず回答ありがとうございました。
その通り動きました!
ありがとうございます!
1

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