2016-09-24 1 views
0

これは、私はエラーがある場合は、上記の質問に答えたとして、我々はそれがnull値を使用してオーバーライドできることを知って持っている Manipulate Error Record in FileHelperFilehelper - FieldConverterが使用されている場合でも、エラーを上げるには、

質問への継続であります。

値を上書きすると、第1位にエラーがあったことが失われます。誤った値をnullで更新し、そのレコードのerroinfoにエラーをスローする方法はありますか?

おかげ

答えて

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(); 
    } 
} 
関連する問題