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