static void Main(string[] args) { Console.WriteLine("取り込みFileをフルパスで入力してください。"); Console.WriteLine("例:C:\\TEST.txt"); Console.Write("File Path : "); string filePath = Console.ReadLine(); if (File.Exists(filePath)) { using (StreamReader sr = new StreamReader(filePath, Encoding.GetEncoding("Shift-JIS"))) { int i = 0; bool result = true; string line; while ((line = sr.ReadLine()) != null) { string[] lineData = line.Split(','); if (lineData.Count() != 3) { Console.WriteLine("フォーマットが異なります"); throw new Exception(); } //配列をMyDataクラスのメンバへ代入。 MyData data = MyData.SetData(lineData); Console.WriteLine("[" + ++i + "レコード目]"); //MyDataクラスのメンバをIValidationを実装したリストへ移し替える。 Validator validator = Validator.CreateValidator(data); try { //ポリモーフィズム。IValidationインターフェースを実装したクラス毎にヴァリデーション定義がされている。 validator.Validate(); } catch (Exception ex) { Console.WriteLine("エラーが発生しました。:" + i + "レコード目 " + ex.Message); result = false; } } if (result) { Console.WriteLine("*Validation result: [OK]"); } else { Console.WriteLine("*Validation result: [NG]"); } } } else { Console.WriteLine("Fileが存在しません。"); } Console.ReadKey(); }
public override ValidationResult Validate(string fieldLabel, string fieldValue) { return(Validator.Validate(fieldLabel, fieldValue)); }
public string this[string propertyName] { get { return(Validator.Validate(propertyName)); } }