Exemplo n.º 1
0
        public static FakeStruct CreateTable <T>(DataBuffer buffer) where T : unmanaged
        {
            int c = 0;

            unsafe { c = sizeof(T); }
            Type       type = typeof(T);
            var        fs   = type.GetFields();
            FakeStruct fsa  = new FakeStruct(buffer, fs.Length * 3 + 1);

            fsa.SetData(0, type.Name);
            int s = 1;

            for (int i = 0; i < fs.Length; i++)
            {
                string typ  = fs[i].FieldType.Name;
                string name = fs[i].Name;
                if (fs[i].FieldType.IsEnum)
                {
                    fsa[s] = 4;
                }
                else
                {
                    fsa[s] = Marshal.SizeOf(fs[i].FieldType);
                }
                s++;
                fsa.SetData(s, typ);
                s++;
                fsa.SetData(s, name);
                s++;
            }
            return(fsa);
        }