这是问题的延续 Manipulate Error Record in FileHelper
我必须知道如果有错误,我们可以使用null值覆盖它,如上面的问题所示。
如果我覆盖该值,则第一个位置出现错误的事实将丢失。有没有办法用null更新错误的值,并在该记录的erroinfo中抛出错误?
由于
答案 0 :(得分:0)
您可以自己将错误存储在某处,并在处理完行后抛出它们。
public class DateConverter : ConverterBase
{
public override object StringToField(string from)
{
//if you can't convert to date time.. .return null
DateTime date;
if (!DateTime.TryParse(from, out date))
{
ErrorTracker.Add(string.Format("Failed to parse date {0}.", from));
return null;
}
return date;
}
/// etc...
}
public static class ErrorTracker
{
public static List<string> ErrorList = new List<string>();
public static void Add(string errorMessage)
{
ErrorList.Add(errorMessage);
}
public static void Clear()
{
ErrorList.Clear();
}
}
class Program
{
static void Main(string[] args)
{
var engine = new FileHelperEngine<ModelClass>();
ErrorTracker.Clear();
var productRecords = engine.ReadFile(@"C:\whatever.txt");
foreach (var errorMessage in ErrorTracker.ErrorList)
{
Console.WriteLine(errorMessage);
}
Console.ReadKey();
}
}