Reflaction很嚣张的功能
这几天在看《Visual.Basic.dot.NET.Business.Objects》一书,里面有几招挺牛的,记录下来。
1、即使一个类的contructor是private的,也可以用以下方法构造之:
Activator.CreateInstance(GetType(Customer), True)
2、用Reflection调用一个对象的方法也是一个很嚣张的功能
#Region " Calling a method "
Private Function GetMethod(ByVal ObjectType As Type, _
ByVal Method As String) As MethodInfo
Return ObjectType.GetMethod(Method, BindingFlags.FlattenHierarchy Or _
BindingFlags.Instance Or _
BindingFlags.Public Or _
BindingFlags.NonPublic)
End Function
#End Region
Private Function CallMethod(ByVal obj As Object, _
ByVal method As String, _
ByVal ParamArray params() As Object) As Object
' Call a private method on the object
Dim info As MethodInfo = GetMethod(obj.GetType, method)
Dim result As Object
Try
result = info.Invoke(obj, params)
Catch e As Exception
Throw e.GetBaseException
End Try
Return result
End Function