public static ReflectionEmitUtils.SetterMethod GenerateSetter(FieldInfo fieldInfo) { return(ReflectionEmitUtils.GenerateSetter(fieldInfo.FieldType, fieldInfo.DeclaringType, delegate(ILGenerator il) { il.Emit(OpCodes.Stfld, fieldInfo); })); }
public static ReflectionEmitUtils.SetterMethod GenerateSetter(PropertyInfo propertyInfo) { return(ReflectionEmitUtils.GenerateSetter(propertyInfo.PropertyType, propertyInfo.DeclaringType, delegate(ILGenerator il) { MethodInfo setMethod = propertyInfo.GetSetMethod(true); il.Emit(OpCodes.Callvirt, setMethod); })); }
protected override void Initialize(IntermediateSerializer serializer, PropertyInfo propertyInfo) { this.valueGetter = ReflectionEmitUtils.GenerateGetter(propertyInfo); if (propertyInfo.CanWrite) { this.valueSetter = ReflectionEmitUtils.GenerateSetter(propertyInfo); } this.InitializeCommon(serializer, propertyInfo, propertyInfo.PropertyType); }
protected override void Initialize(IntermediateSerializer serializer, FieldInfo fieldInfo, bool canWrite) { this.valueGetter = ReflectionEmitUtils.GenerateGetter(fieldInfo); if (canWrite) { this.valueSetter = ReflectionEmitUtils.GenerateSetter(fieldInfo); } this.InitializeCommon(serializer, fieldInfo, fieldInfo.FieldType); }