Exemplo n.º 1
0
 /// <summary>
 /// Initialize the current CsvReader instance with provided information
 /// </summary>
 /// <param name="stream">A readable stream from which current reader will read data</param>
 /// <param name="settings">Configurable options customizing current CsvReader instance</param>
 /// <param name="dataResolver">A customer data resolver converting raw CSV values to objects</param>
 protected CsvReader(Stream stream, CsvReaderSettings settings, IDataResolver <T> dataResolver)
 {
     this.mDataResolver         = dataResolver;
     this.mCsvSettings          = settings = settings ?? new CsvReaderSettings();
     this.mCsvSettings.UseCache = settings.UseCache || settings.SkipDuplicates;
     EnsureParameters(stream, settings, dataResolver);
     settings.BufferSize = Math.Min(BUFFER_SZMAX, Math.Max(settings.BufferSize, BUFFER_SZMIN));
     this.mReader        = new StreamReader(stream, settings.Encoding, false, settings.BufferSize);
     this.mBuffer        = new Char[settings.BufferSize];
 }
Exemplo n.º 2
0
        private static void EnsureParameters(Stream stream, CsvReaderSettings settings, IDataResolver <T> dataResolver)
        {
            if (stream == null)
            {
                throw new ArgumentNullException("stream");
            }
            if (!stream.CanRead)
            {
                throw new ArgumentException("stream is not readable", "stream");
            }

            if (settings.Encoding == null)
            {
                throw new ArgumentNullException("settings.Encoding");
            }

            if (dataResolver == null)
            {
                throw new ArgumentNullException("dataResolver");
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Create an instance of CsvReader with a specified readable stream, a CsvReaderSettings object and a custom data resolver.
 /// </summary>
 /// <param name="stream">A readable stream from which the CsvReader will read content.</param>
 /// <param name="settings">Specify the options to control behavior of CsvReader.</param>
 /// <param name="dataResolver">A custom data resolver used to serialize and deserialize data.</param>
 /// <returns>A CsvReader instance.</returns>
 public static CsvReader <T> Create(Stream stream, CsvReaderSettings settings, IDataResolver <T> dataResolver)
 {
     return(new CsvReader <T>(stream, settings, dataResolver));
 }
Exemplo n.º 4
0
 /// <summary>
 /// Create an instance of CsvReader with a specified byte array, a CsvReaderSettings object and a custom data resolver.
 /// </summary>
 /// <param name="stream">A Byte array from which the CsvReader will read content.</param>
 /// <param name="settings">Specify the options to control behavior of CsvReader.</param>
 /// <param name="dataResolver">A custom data resolver used to serialize and deserialize data.</param>
 /// <returns>A CsvReader instance.</returns>
 public static CsvReader <T> Create(Byte[] stream, CsvReaderSettings settings, IDataResolver <T> dataResolver)
 {
     return(Create(new MemoryStream(stream), settings, dataResolver));
 }
Exemplo n.º 5
0
 /// <summary>
 /// Create an instance of CsvReader with a specified file path, a CsvReaderSettings object and a custom data resolver.
 /// If the path does not exists, an exception will be thrown.
 /// </summary>
 /// <param name="filePath">The path of the CSV file to be read.</param>
 /// <param name="settings">Specify the options to control behavior of CsvReader.</param>
 /// <param name="dataResolver">A custom data resolver used to serialize and deserialize data.</param>
 /// <returns>A CsvReader instance.</returns>
 public static CsvReader <T> Create(String filePath, CsvReaderSettings settings, IDataResolver <T> dataResolver)
 {
     CheckFilePath(filePath);
     return(new CsvReader <T>(filePath, settings, dataResolver));
 }
Exemplo n.º 6
0
 /// <summary>
 /// Initialize the current CsvReader instance with provided information
 /// </summary>
 /// <param name="filePath">A readable file from which current reader will read data</param>
 /// <param name="settings">Configurable options customizing current CsvReader instance</param>
 /// <param name="dataResolver">A customer data resolver converting raw CSV values to objects</param>
 protected CsvReader(String filePath, CsvReaderSettings settings, IDataResolver <T> dataResolver)
     : this(File.OpenRead(filePath), settings, dataResolver)
 {
     this.mFilePath = filePath;
 }