2016-09-24 4 views
0

이 나는 ​​경우에 에러가 발생했을 경우 위의 질문에 대답으로, 우리가 널 (null) 값을 사용하여 대체 할 수 있음을 알게했다 Manipulate Error Record in FileHelperFilehelper - FieldConverter를 사용하는 경우에도 오류가 발생이

질문에 연속이다 .

값을 무시하면 첫 번째 장소에 오류가 있다는 사실이 사라집니다. 잘못된 값을 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(); 
    } 
} 
관련 문제