public void GetWriteILCode(PropertyData prop, BinaryStruct currentStruct, GroboIL il, GroboIL.Local binaryStruct, GroboIL.Local value, GroboIL.Local typeSize, GroboIL.Local buffer, GroboIL.Local offset, bool listValue) { var ilValue = il.DeclareLocal(prop.PropertyInfo.PropertyType); il.Ldloc(value); il.Call(prop.Getter); il.Stloc(ilValue); var exitLabel = il.DefineLabel("exit"); il.Ldloca(ilValue); BinaryStruct.WriteNullableType <TType>(il, exitLabel, buffer, offset); var nval = il.DeclareLocal(typeof(TType)); il.Ldloca(ilValue); il.Call(Getter); il.Stloc(nval); (new T()).GetWriteILCode(prop, currentStruct, il, binaryStruct, nval, typeSize, buffer, offset, true); il.MarkLabel(exitLabel); }