処理中のcsvファイルのエラーを特定するためにFileHelpersライブラリを使用しています。Filehelperは例外メッセージに基づいてエラーを区別し、レコード文字列を操作します
var engine = new DelimitedFileEngine<ModelClass>;
engine.ErrorManager.ErrorMode = ErrorMode.SaveAndContinue;
List<object> fileEngineResult = engine.ReadFile(fullFileName).ToList();
errorInfo = engine.ErrorManager.Errors;
マイModelClass検証と私のCSVファイルの各列に対応するプロパティ私のために今
[DelimitedRecord(",")]
[IgnoreEmptyLines]
public class ModelClass
{
[FieldNotEmpty]
private string column1;
[FieldConverter(ConverterKind.Date, "MM/dd/yyyy")]
private DateTime datecolumn;
[FieldNotEmpty]
private string column3;
}
- 属性フィールド内の任意のエラーを持っている空ではないが、私が対処する必要がありますので、非常に重要です別々に。
- 重要でないエラー(この場合はdatecolumn)の場合、間違った値をnullに置き換える必要があります。
私は第二の要件を達成するために以下のコード(それはまだ、粗方法です)
List<object> criticalErrorList = new List<object>();
List<object> softErrorList = new List<object>();
foreach (var error in errorInfo)
{
if (error.ExceptionInfo.InnerException.ToString().Contains("The value is empty and must be populated"))
{
criticalErrorList.Add(error);
}
else
{ error.RecordString = //replace recordstring for the error column with null;
softErrorList.Add(error);
}
}
}
任意のアイデアを使用して、私の第一要件を達成できますか?
あなたが与えたオプションは良いです。しかし、私はまた、それを記録するためにエラーをキャプチャしたい、またレコードがnull値になりたい。これらのソフトエラーは、intのために来ることができます。私はintを期待していますが、文字列は渡されます。何かご意見は ?私はあなたが与えた解決策を慎重に試していきます – KeenUser