■ 바이트 배열에서 구조체 객체를 구하는 방법을 보여준다.
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
using System; using System.Runtime.InteropServices; #region 객체 구하기 - GetObject<T>(sourceByteArray) /// <summary> /// 객체 구하기 /// </summary> /// <typeparam name="T">객체 타입</typeparam> /// <param name="sourceByteArray">소스 바이트 배열</param> /// <returns>객체</returns> public static T GetObject<T>(byte[] sourceByteArray) where T : struct { int objectSize = Marshal.SizeOf(typeof(T)); if(objectSize > sourceByteArray.Length) { throw new Exception(); } IntPtr handle = Marshal.AllocHGlobal(objectSize); Marshal.Copy(sourceByteArray, 0, handle, objectSize); T targetObject = (T)Marshal.PtrToStructure(handle, typeof(T)); Marshal.FreeHGlobal(handle); return targetObject; } #endregion |