示例#1
0
        /// <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));
        }
示例#2
0
        /// <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);
        }
示例#3
0
        /// <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));
        }
示例#4
0
        /// <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));
        }
示例#5
0
        /// <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));
        }