Filehelper -即使使用FieldConverter也会引发错误

本文关键字:错误 FieldConverter Filehelper | 更新日期: 2023-09-27 18:08:31

这是问题的延续在FileHelper

中操作错误记录

我必须知道,如果有一个错误,我们可以用null值覆盖它,正如在上面的问题中回答的。

如果我重写该值,那么首先存在错误的事实就会丢失。是否有一种方法来更新错误的值与空,也抛出错误的errorinfo为该记录?

谢谢

Filehelper -即使使用FieldConverter也会引发错误

您可以自己将错误存储在某个地方,并在处理完行后抛出它们。

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();
    }
}