對於這個我在SO上閱讀了不少帖子,還需要一些幫助理解這個。從csv導入方法'不要多次配置對象'警告
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;
}
}
感謝
您是否缺少'{...}'使用(var reader ...'? – DavidG 2014-10-01 10:11:36
這可能是由於CsvReader配置了閱讀器,因此您不需要使用2個語句。假設你的實際代碼編譯不像你發佈的代碼 – 2014-10-01 10:14:25
@DavidG no sir,如果你想嵌套它們,使用類似的語句堆棧就可以了。好的是,如果出現錯誤,它們將按順序處理他們被立即使用 – 2014-10-02 06:53:37