public NestedProxyProperty(ITypedMemberDescriptor member) : base(member.Name, null, null, null) { FieldOffset = member.GetOffset(); ComponentType = member.GetMemberType(); RefAccess = GetChildRef; }
public NestedStructProxyProperty(ITypedMemberDescriptor member) : base(member.Name, null, null, (ByRef m, StructValueStructProperty <StructProxy, StructProxy> property, ref StructProxy c, IPropertyVisitor v) => { var val = property.GetValue(ref c); m(property, ref c, ref val, v); }) { FieldOffset = member.GetOffset(); ComponentType = member.GetMemberType(); }
public PrimitiveProperty(ITypedMemberDescriptor member) : base(member.Name, null, null) { FieldOffset = member.GetOffset(); /* * Type myType = typeof(PrimitiveProperty<>.).MakeGenericType(p.PropertyType); * PropertyGetMethod = new DynamicMethod(p.PropertyType.Name, p.PropertyType, new Type[] { typeof(void*) }); * ILGenerator gen = PropertyGetMethod.GetILGenerator(); * LocalBuilder outputValue = gen.DeclareLocal(p.PropertyType); * gen.Emit(OpCodes.Ldarg_0); * gen.Emit(OpCodes.Ldloc_0); * gen.Emit(OpCodes.Call, UnsafeUtility.CopyPtrToStructure); * gen.Emit(OpCodes.Ldarg_0); // ?? * gen.Emit(OpCodes.Call, p.GetMethod); * gen.Emit(OpCodes.Ret); */ }
public PrimitiveStructProperty(ITypedMemberDescriptor member) : base(member.Name, null, null) { FieldOffset = member.GetOffset(); }