public object?DeserializeObject(
            Type objType,
            LinkedList <string> argList)
        {
            var objectSpecs = mValueSerializer.GetObjectSpecs(objType);

            if (objectSpecs == null)
            {
                throw new InvalidOperationException($"Type {objType} can not deserialize to object.");
            }

            objectSpecs.BeginDeserializeObject(this, argList);
            Deserialize(argList, objectSpecs, (spec, value) => objectSpecs.SpecDeserialized(spec, value));
            return(objectSpecs.EndDeserializeObject(this, argList));
        }