Exemple #1
0
        public static Reader CreateReader(TextReader reader, SerializationSettings settings)
        {
            var documentReader = SupportedDocumentTextReader.Create(reader);

            if (documentReader.DocumentFormat == SupportedDocumentTextReader.XmlFormat)
            {
                return(new XmlDocumentReader(documentReader, settings));
            }

            if (documentReader.DocumentFormat == SupportedDocumentTextReader.JsonFormat)
            {
                return(new JsonReader(documentReader, settings));
            }

            return(new CsvReader(documentReader, settings));
        }
Exemple #2
0
        public static SupportedDocumentTextReader Create(TextReader reader)
        {
            var format = SupportedDocumentTextReader.UnknownFormat;

            var memory = new MemoryStream();
            var writer = new StreamWriter(memory);

            while (reader.Peek() > -1)
            {
                var ch = (char)reader.Read();

                writer.Write(ch);
                writer.Flush();

                if (!char.IsWhiteSpace(ch))
                {
                    if (ch == '<')
                    {
                        format = SupportedDocumentTextReader.XmlFormat;
                    }
                    else if (ch == '{' || ch == '[')
                    {
                        format = SupportedDocumentTextReader.JsonFormat;
                    }
                    else
                    {
                        format = SupportedDocumentTextReader.CsvFormat;
                    }

                    break;
                }
            }

            memory.Position = 0;
            var memoryReader = new StreamReader(memory);

            var compositeReader = new SupportedDocumentTextReader(format, memoryReader, reader);

            return(compositeReader);
        }