Пример #1
0
		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;
		}
Пример #2
0
 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)
 {
 }
Пример #4
0
        /// <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);
        }