public static Array GetStaticFieldValuesOfType(Type oType, Type oFieldType)
        {
            ArrayBuilder oFieldValues = new ArrayBuilder(oFieldType);

            FieldInfo[] Fields = oType.GetFields(
                BindingFlags.Public |
                BindingFlags.Static |
                BindingFlags.FlattenHierarchy
                );

            ILReflector ILReflector = GetILReflector(oType);

            foreach (FieldInfo oField in Fields)
            {
                object oFieldVal = ILReflector.GetFieldValue(null, oField);

                if (oFieldVal == null)
                {
                    continue;
                }

                if (oFieldType.IsAssignableFrom(oFieldVal.GetType()))
                {
                    oFieldValues.Add(oFieldVal);
                }
            }

            return(oFieldValues.GetArray());
        }
        public static object GetFieldValue(object target, FieldInfo fieldInfo)
        {
            ILReflector ILReflector = GetILReflector(target.GetType());

            return(ILReflector.GetFieldValue(target, fieldInfo));
        }