.net反射技术封装类(1)
return typeModule.GetType(hiddenTypeName);
}
public static MethodInfo GetMethod(Type type, string funcName, Type[] paramTypes)
{
if (paramTypes != null)
return type.GetMethod(funcName, flags, null, paramTypes, null);
else
return type.GetMethod(funcName, flags);
}
public static MethodInfo GetMethod(Type type, string funcName)
{
return GetMethod(type, funcName, null);
}
public static object CallMethod(object obj, string funcName, params object[] parameters)
{
Type type = obj.GetType();
MethodInfo method = GetMethod(type, funcName, GetTypesFromObjects(parameters));
return method.Invoke(obj, parameters);
}
public static object CallStaticMethod(Type type, string funcName, params object[] parameters)
{
MethodInfo method = GetMethod(type, funcName, GetTypesFromObjects(parameters));
return method.Invoke(null, parameters);
}
public static object GetProperty(object obj, string propertyName)
{
return GetProperty(obj, propertyName, null);
}
public static object GetProperty(object obj, string propertyName, params object[] index)
{
Type type = obj.GetType();
return type.GetProperty(propertyName, flags).GetValue(obj, index);
}
public static object GetStaticProperty(Type type, string propertyName)
{
return GetStaticProperty(type, propertyName, null);
}
public static object GetStaticProperty(Type type, string propertyName, params object[] index)
{
return type.GetProperty(propertyName, flags).GetValue(null, index);
}
public static void SetProperty(object obj, string propertyName, object value)
{
SetProperty(obj, propertyName, value, null);
}
public static void SetProperty(object obj, string propertyName, object value, params object[] index)
{
Type type = obj.GetType();
type.GetProperty(propertyName, flags).SetValue(obj, value
