/// <summary> /// オブジェクトのDesirializeを行う /// </summary> /// <param name="binaryReader">BinaryReader</param> /// <param name="allocater">オブジェクトのアロケーター</param> /// <returns></returns> public static ISerializerKun DesirializeObject(BinaryReader binaryReader, Allocater allocater) { var check = binaryReader.ReadBoolean(); if (check == false) { return(null); } var obj = allocater(); obj.Deserialize(binaryReader); return(obj); }
/// <summary> /// オブジェクトの配列をDesirializeを実行する /// </summary> /// <typeparam name="T"></typeparam> /// <param name="binaryReader"></param> /// <param name="allocaters">オブジェクトの配列を確保する為のアロケーター</param> /// <param name="allocater">オブジェクトを確保する為のアロケーター</param> /// <returns></returns> public static T[] DesirializeObjects <T>(BinaryReader binaryReader, Allocaters allocaters, Allocater allocater) where T : ISerializerKun, new() { var len = binaryReader.ReadInt32(); if (len == -1) { return(null); } //var arrays = allocaters(len); var arrays = new T[len]; for (var i = 0; i < len; i++) { arrays[i] = (T)DesirializeObject(binaryReader, allocater); } return(arrays); }