Esempio n. 1
0
        public static int OffsetOf(Type t, string name, OffsetOfType type, bool isProperty = false)
        {
            if (isProperty)
            {
                name = UniqueMember.BackingField.GetName(name);
            }

            switch (type)
            {
            case OffsetOfType.Marshal:
                return((int)Marshal.OffsetOf(t, name));

            case OffsetOfType.Managed:
                var mt = t.AsMetaType();
                return(mt[name].Offset);

            default:
                throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }
        }
Esempio n. 2
0
 public static int OffsetOf <T>(string name, OffsetOfType type, bool isProperty = false) =>
 OffsetOf(typeof(T), name, type, isProperty);