Imports
System.Reflection
Module
InvokeMember
Dim
type
As
Type
=
Assembly
.GetExecutingAssembly().GetType(
"
MyApp.Person
"
)
Dim
arguments()
As
Object
=
{
"
Joe
"
,
"
Doe
"
}
Dim
obj
As
Object
=
type.InvokeMember(
""
, BindingFlags.CreateInstance,
Nothing
,
Nothing
, arguments)
Sub
InvokeMemberMethod()
type.InvokeMember(name:
=
"
FirstName
"
,
invokeAttr:
=
BindingFlags.
SetField,
binder:
=
Nothing
,
target:
=
obj,
args:
=
{
"
Francesco
"
})
Dim
value
As
Object
=
type.InvokeMember(name:
=
"
FirstName
"
,
invokeAttr:
=
BindingFlags.
GetField,
binder:
=
Nothing
,
target:
=
obj,
args:
=
Nothing
)
type.InvokeMember(name:
=
"
Age
"
,
invokeAttr:
=
BindingFlags.
SetProperty,
binder:
=
Nothing
,
target:
=
obj,
args:
=
{35S})
type.InvokeMember(name:
=
"
SendEmail
"
,
invokeAttr:
=
BindingFlags.
InvokeMethod,
binder:
=
Nothing
,
target:
=
obj,
args:
=
{
"
This is a message
"
,
2
})
Dim
age
As
Object
=
type.InvokeMember(name:
=
"
m_Age
"
,
invokeAttr:
=
BindingFlags.
GetField
Or
BindingFlags.
NonPublic
Or
BindingFlags.
Instance,
binder:
=
Nothing
,
target:
=
obj,
args:
=
Nothing
)
type.InvokeMember(name:
=
"
IncrementValue
"
,
invokeAttr:
=
BindingFlags.
InvokeMethod,
binder:
=
Nothing
,
target:
=
obj,
args:
=
{
10
})
Console.WriteLine(
"
New value for argument = {0}
"
, {
10
}(
0
))
End Sub
End Module