/// <summary> /// 调用当前类型上指定的静态方法。 /// </summary> /// <param name="type">要调用方法的类型。</param> /// <param name="name">方法的名称。</param> /// <param name="ignoreCase">指定是否忽略方法名称的大小写。</param> /// <param name="args">调用方法时传入的参数。</param> /// <returns>返回被调用方法的返回值。</returns> public static object Invoke(this Type type, string name, bool ignoreCase, params object[] args) { if (type == null) { throw new ArgumentNullException("type"); } var proxy = TypeProxy.GetProxy(type); return(proxy.Invoke(null, name, ignoreCase, args)); }
/// <summary> /// 设置当前类型上指定的静态属性或字段的值。 /// </summary> /// <param name="type">要设置的属性或字段的值的类型。</param> /// <param name="name">属性或字段的名称。</param> /// <param name="value">要设置的值。</param> /// <param name="ignoreCase">指定是否忽略属性或字段名称的大小写。</param> /// <returns>返回该属性或字段的值。</returns> public static void SetValue(this Type type, string name, object value, bool ignoreCase = false) { if (type == null) { throw new ArgumentNullException("type"); } var proxy = TypeProxy.GetProxy(type); proxy.SetValue(null, name, value); }
/// <summary> /// 创建当前类型的新实例序列。 /// </summary> /// <param name="type">要创建实例序列的类型。</param> /// <param name="count">要创建的实例序列中包含的元素的数量。</param> /// <param name="args">创建实例需要的参数。</param> /// <returns>返回创建的新实例序列。</returns> public static IEnumerable <object> CreateInstances(this Type type, int count, params object[] args) { if (type == null) { throw new ArgumentNullException("type"); } var proxy = TypeProxy.GetProxy(type); return(proxy.CreateInstances(count, args)); }
/// <summary> /// 获取当前类型上指定的静态属性或字段的值。 /// </summary> /// <param name="type">要获取的属性或字段的值的类型。</param> /// <param name="name">属性或字段的名称。</param> /// <param name="ignoreCase">指定是否忽略属性或字段名称的大小写。</param> /// <returns>返回该属性或字段的值。</returns> public static object GetValue(this Type type, string name, bool ignoreCase = false) { if (type == null) { throw new ArgumentNullException("type"); } var proxy = TypeProxy.GetProxy(type); return(proxy.GetValue(null, name, ignoreCase)); }
/// <summary> /// 创建当前类型的新实例。 /// </summary> /// <param name="type">要创建实例的类型。</param> /// <param name="args">创建实例需要的参数。</param> /// <returns>返回创建的新实例。</returns> public static object CreateInstance(this Type type, params object[] args) { if (type == null) { throw new ArgumentNullException("type"); } var proxy = TypeProxy.GetProxy(type); return(proxy.CreateInstance(args)); }