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);
}
}
}