public object GetValue(object obj, object[] index) { if (this.getDelegate != null) { return(this.getDelegate(obj, index)); } this.getDelegate = DynamicMethodHelper.CreateGetHandler(type, info); return(this.getDelegate(obj, index)); }
public PropertyProxy(PropertyInfo info) : base(info) { var getter = Info.GetGetMethod(); if (getter != null) { var getterMethod = CreateGetter(Info.DeclaringType, Info.PropertyType, Info.DeclaringType, getter); m_propertyGetDelegate = (PropertyGetDelegate)getterMethod.CreateDelegate(typeof(PropertyGetDelegate)); //m_propertySetDelegate = (PropertySetDelegate) // Delegate.CreateDelegate(typeof(PropertySetDelegate), miSetter); } var setter = Info.GetSetMethod(); if (setter != null) { var setterMethod = CreateSetter(Info.DeclaringType, Info.PropertyType, Info.DeclaringType, setter); m_propertySetDelegate = (PropertySetDelegate)setterMethod.CreateDelegate(typeof(PropertySetDelegate)); } }
public Property(PropertyGetDelegate get, PropertySetDelegate set) { _getDelegate = get; _setDelegate = set; }