dreamforce

Untitled

Oct 31st, 2020 (edited)
846
4 hours
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.IO;
  3. using System.Collections.Generic;
  4. using System.Globalization;
  5. using CsvHelper;
  6. using CsvHelper.Configuration;
  7. using System.Linq;
  8.  
  9. namespace TestDB
  10. {
  11.     class Person
  12.     {
  13.         int id { get; set; }
  14.         string firstName { get; set; }
  15.         string lastName { get; set; }
  16.  
  17.         public Person() { }
  18.  
  19.         public Person(int id, string firstName, string lastName)
  20.         {
  21.             this.id = id;
  22.             this.firstName = firstName;
  23.             this.lastName = lastName;
  24.         }
  25.  
  26.         public void Show()
  27.         {
  28.             Console.WriteLine($"{id,3}: {lastName,-15} {firstName,-15}");
  29.         }
  30.     }
  31.  
  32.     class Program
  33.     {
  34.         public static string databaseCSV = @"test.csv";
  35.         public static List<Person> persons = new List<Person>();
  36.  
  37.         static void Main(string[] args)
  38.         {
  39.             var cfg = new CsvConfiguration(CultureInfo.InvariantCulture);
  40.             cfg.Delimiter = ";";
  41.             cfg.HasHeaderRecord = false;
  42.  
  43.             using (var reader = new StreamReader(databaseCSV))
  44.             using (var csv = new CsvReader(reader, cfg))
  45.             {
  46.                 var records = csv.GetRecords<Person>().ToList();
  47. //Необработанное исключение: CsvHelper.ReaderException: No members are mapped for type 'TestDB.Person'.
  48. //   в CsvHelper.Expressions.ObjectRecordCreator.CreateCreateRecordDelegate(Type recordType)
  49. //   в CsvHelper.Expressions.RecordCreator.GetCreateRecordDelegate(Type recordType)
  50. //   в CsvHelper.Expressions.RecordCreator.Create[T]()
  51. //   в CsvHelper.Expressions.RecordManager.Create[T]()
  52. //   в CsvHelper.CsvReader.<GetRecords>d__63`1.MoveNext()
  53. //   в System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
  54. //   в System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
  55. //   в TestDB.Program.Main(String[] args) в D:\YandexDisk\src\C#\DataBase\TestDB\Program.cs:строка 46
  56.  
  57.                 foreach (var person in persons)
  58.                 {
  59.                     persons.Add(person);
  60.                 }
  61.             }
  62.  
  63.  
  64.             foreach (var p in persons)
  65.             {
  66.                 p.Show();
  67.             }
  68.         }
  69.     }
  70. }
  71.  
RAW Paste Data