1

我阅读了很多关于这个的帖子,但仍然需要一些帮助来理解这一点。

CodeAnalysis 是说这个方法是两次处理对象。实际上,它警告我方法中的两个对象;一次用于对象file.InputStream,一次用于reader对象

这是我的代码:

public void SaveCsvData(HttpPostedFileBase file, int vendorId)
        {
            var listCsvImport = new List<CsvImport>();

            try
            {
                using (var reader = new StreamReader(file.InputStream))
                using (var csvReader = new CsvHelper.CsvReader(reader))
                {

                    int count = 0;
                    while (csvReader.Read())
                    {
                        ...<snip>...

                        listCsvImport.Add(record);
                    }
                    _db.CsvImports.AddRange(listCsvImport);
                    _db.SaveChanges();
                }
...<snip>...

            }
            catch (CsvBadDataException ex)
            {
                log.Error("Invalid data in the CSV file, terminating process...");
                throw;
            }
            catch (Exception ex)
            {
                log.Error("Csv import failed, no data was saved.", ex);
                throw;
            }

        }

谢谢

4

1 回答 1

2

using (var csvReader = new CsvHelper.CsvReader(reader))已经配置了 reader 对象,所以你不需要使用using (var reader = new StreamReader(file.InputStream)).

于 2014-10-01T10:15:02.587 回答