Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }