示例#1
0
 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();
 }