static FastReflectionCaches() { MethodInvokerCache = new MethodInvokerCache(); PropertyAccessorCache = new PropertyAccessorCache(); FieldAccessorCache = new FieldAccessorCache(); ConstructorInvokerCache = new ConstructorInvokerCache(); }
public static T FastGetValue <T>(this FieldInfo fieldInfo, object instance) => (T)FieldAccessorCache.Get(fieldInfo).GetValue(instance);
public static void FastSetValue(this FieldInfo fieldInfo, object instance, object value) => FieldAccessorCache.Get(fieldInfo).SetValue(instance, value);
public static object FastGetValue(this FieldInfo fieldInfo, object instance) => FieldAccessorCache.Get(fieldInfo).GetValue(instance);