public AccessOptimizer(GetPropertyValuesInvoker getDelegate, SetPropertyValuesInvoker setDelegate, IGetter[] getters, ISetter[] setters) { this.getDelegate = getDelegate; this.setDelegate = setDelegate; this.getters = getters; this.setters = setters; getterCallback = OnGetterCallback; setterCallback = OnSetterCallback; }
public AccessOptimizer( GetPropertyValuesInvoker getDelegate, SetPropertyValuesInvoker setDelegate, IGetter[] getters, ISetter[] setters) : this( getDelegate, setDelegate, getters.ToArray(o => (GetPropertyValueInvoker)o.Get), setters.ToArray(o => (SetPropertyValueInvoker)o.Set), null, null) { }
/// <summary> /// Class constructor. /// </summary> public ReflectionOptimizer(System.Type mappedType, IGetter[] getters, ISetter[] setters) { // save off references this.mappedType = mappedType; typeOfThis = mappedType.IsValueType ? mappedType.MakeByRefType() : mappedType; //this.getters = getters; //this.setters = setters; GetPropertyValuesInvoker getInvoker = GenerateGetPropertyValuesMethod(getters); SetPropertyValuesInvoker setInvoker = GenerateSetPropertyValuesMethod(getters, setters); accessOptimizer = new AccessOptimizer(getInvoker, setInvoker, getters, setters); createInstanceMethod = CreateCreateInstanceMethod(mappedType); }
public AccessOptimizer(GetPropertyValuesInvoker getDelegate, SetPropertyValuesInvoker setDelegate, GetPropertyValueInvoker[] getters, SetPropertyValueInvoker[] setters, GetPropertyValueInvoker specializedGetter, SetPropertyValueInvoker specializedSetter) { this.getDelegate = getDelegate; this.setDelegate = setDelegate; _getters = getters; _setters = setters; _specializedGetter = specializedGetter; _specializedSetter = specializedSetter; getterCallback = GetPropertyValue; setterCallback = SetPropertyValue; }
/// <summary> /// Class constructor. /// </summary> public ReflectionOptimizer( System.Type mappedType, IGetter[] getters, ISetter[] setters, IGetter specializedGetter, ISetter specializedSetter) { // save off references this.mappedType = mappedType; typeOfThis = mappedType.IsValueType ? mappedType.MakeByRefType() : mappedType; //this.getters = getters; //this.setters = setters; GetPropertyValuesInvoker getInvoker = GenerateGetPropertyValuesMethod(getters); SetPropertyValuesInvoker setInvoker = GenerateSetPropertyValuesMethod(setters); var getMethods = new GetPropertyValueInvoker[getters.Length]; for (var i = 0; i < getters.Length; i++) { getMethods[i] = GenerateGetPropertyValueMethod(getters[i]); } var setMethods = new SetPropertyValueInvoker[setters.Length]; for (var i = 0; i < setters.Length; i++) { setMethods[i] = GenerateSetPropertyValueMethod(setters[i]); } accessOptimizer = new AccessOptimizer( getInvoker, setInvoker, getMethods, setMethods, GenerateGetPropertyValueMethod(specializedGetter), GenerateSetPropertyValueMethod(specializedSetter) ); createInstanceMethod = CreateCreateInstanceMethod(mappedType); }