public static T Deserialize <T>(this ITextDeserializer deserializer,
                                        TextReader textReader,
                                        DeserializeOptions options = null)
        {
            options = options ?? new DeserializeOptions();

            if (options.ExpectedBaseType == null)
            {
                options.ExpectedBaseType = typeof(T);
            }

            return((T)deserializer.Deserialize(textReader, options));
        }
        public static object DeserializeString(this ITextDeserializer deserializer,
                                               string serializedObj,
                                               DeserializeOptions options = null)
        {
            if (deserializer == null)
            {
                throw new ArgumentNullException(nameof(deserializer));
            }

            if (serializedObj == null)
            {
                throw new ArgumentNullException(nameof(serializedObj));
            }

            using (var textReader = new StringReader(serializedObj))
            {
                return(deserializer.Deserialize(textReader, options));
            }
        }