在C#编程时,有时需要使用.Net类库或者第三方类库中的私有方法,私有方法不能直接调用,需要使用反射进行调用,最常使用的是Type中的两个方法,一个是获取私有的方法,另一个是获取私有的属性值。获取私有方法的代码如下:
MethodInfo mInfo = type
.GetMethod(methodName,
BindingFlags.NonPublic
| BindingFlags.Static
| BindingFlags.Instance);
这里 type为类型Type,methodName为私有方法的名称。封装为函数如下:
1 | private static MethodInfo getNonPublicMethodInfo(Type type, string methodName) |
获取私有属性的方法如下:
1 | private static object getPrivateProperty<T>(object instance, string propertyName) |