public void SetValue(object obj, object value, object[] index) { if (this.setDelegate != null) { this.setDelegate(obj, value, index); return; } this.setDelegate = DynamicMethodHelper.CreateSetHandler(type, info); this.setDelegate(obj, value, 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; }