101 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Reflection;
 | 
						|
using System.Text;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar.Design
 | 
						|
{
 | 
						|
    internal static class ReflectionHelpers
 | 
						|
    {
 | 
						|
        public static object GetValueProperty(object owner, string propertyName, BindingFlags flags)
 | 
						|
        {
 | 
						|
            if (owner == null)
 | 
						|
                return (object)null;
 | 
						|
            PropertyInfo propertyInfo = owner.GetType().GetProperty(propertyName, flags);
 | 
						|
            return ReflectionHelpers.GetValueProperty(owner, propertyInfo);
 | 
						|
        }
 | 
						|
 | 
						|
        public static object GetValueProperty(object owner, PropertyInfo propertyInfo)
 | 
						|
        {
 | 
						|
            if (owner == null || propertyInfo == (PropertyInfo)null)
 | 
						|
                return (object)null;
 | 
						|
            return propertyInfo.GetValue(owner, (object[])null);
 | 
						|
        }
 | 
						|
 | 
						|
        public static PropertyInfo GetPropertyInfo(object owner, string propertyName, BindingFlags flags)
 | 
						|
        {
 | 
						|
            if (owner == null)
 | 
						|
                return (PropertyInfo)null;
 | 
						|
            return ReflectionHelpers.GetPropertyInfo(owner.GetType(), propertyName, flags);
 | 
						|
        }
 | 
						|
 | 
						|
        public static object InvokeMethod(object owner, string nameMethod, BindingFlags flags, object[] args)
 | 
						|
        {
 | 
						|
            MethodInfo methodInfo = ReflectionHelpers.GetMethodInfo(owner, nameMethod, flags);
 | 
						|
            return ReflectionHelpers.InvokeMethod(owner, methodInfo, args);
 | 
						|
        }
 | 
						|
 | 
						|
        public static MethodInfo GetMethodInfo(object owner, string nameMethod, BindingFlags flags)
 | 
						|
        {
 | 
						|
            if (owner == null)
 | 
						|
                return (MethodInfo)null;
 | 
						|
            return ReflectionHelpers.GetMethodInfo(owner.GetType(), nameMethod, flags);
 | 
						|
        }
 | 
						|
 | 
						|
        public static MethodInfo GetMethodInfo(Type type, string nameMethod, BindingFlags flags)
 | 
						|
        {
 | 
						|
            if (type == (Type)null)
 | 
						|
                return (MethodInfo)null;
 | 
						|
            return type.GetMethod(nameMethod, flags);
 | 
						|
        }
 | 
						|
        public static object InvokeMethod(object owner, MethodInfo methodInfo, object[] args)
 | 
						|
        {
 | 
						|
            if (methodInfo == (MethodInfo)null || owner == null)
 | 
						|
                return (object)null;
 | 
						|
            return methodInfo.Invoke(owner, args);
 | 
						|
        }
 | 
						|
 | 
						|
        public static void SetValueField(object owner, string nameField, BindingFlags flags, object value)
 | 
						|
        {
 | 
						|
            FieldInfo fieldInfo = ReflectionHelpers.GetFieldInfo(owner, nameField, flags);
 | 
						|
            ReflectionHelpers.SetValueField(owner, fieldInfo, value);
 | 
						|
        }
 | 
						|
 | 
						|
        public static void SetValueField(object owner, FieldInfo fieldInfo, object value)
 | 
						|
        {
 | 
						|
            if (owner == null || fieldInfo == (FieldInfo)null)
 | 
						|
                return;
 | 
						|
            fieldInfo.SetValue(owner, value);
 | 
						|
        }
 | 
						|
 | 
						|
        public static FieldInfo GetFieldInfo(Type type, string nameField, BindingFlags flags)
 | 
						|
        {
 | 
						|
            if (type == (Type)null)
 | 
						|
                return (FieldInfo)null;
 | 
						|
            return type.GetField(nameField, flags);
 | 
						|
        }
 | 
						|
 | 
						|
        public static FieldInfo GetFieldInfo(object owner, string nameField, BindingFlags flags)
 | 
						|
        {
 | 
						|
            if (owner == null)
 | 
						|
                return (FieldInfo)null;
 | 
						|
            return ReflectionHelpers.GetFieldInfo(owner.GetType(), nameField, flags);
 | 
						|
        }
 | 
						|
 | 
						|
        public static ConstructorInfo GetConstructorInfo(Type type, Type[] args)
 | 
						|
        {
 | 
						|
            if (type == (Type)null)
 | 
						|
                return (ConstructorInfo)null;
 | 
						|
            return type.GetConstructor(args);
 | 
						|
        }
 | 
						|
 | 
						|
        public static object GetValueField(object owner, string nameField, BindingFlags flags)
 | 
						|
        {
 | 
						|
            if (owner == null) return null;
 | 
						|
            FieldInfo fieldInfo = owner.GetType().GetField(nameField, flags);
 | 
						|
            if (fieldInfo == null) return null;
 | 
						|
            return fieldInfo.GetValue(owner);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |