December 07, 2021
기본소스
다른 자료형 받아오기
Before
using System;
namespace csvHelperTest
{
class Program
{
static void Main(string[] args)
{
using (var reader = new StreamReader("path\\to\\file.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
csv.Context.RegisterClassMap<FooMap>();
var records = csv.GetRecords<Foo>();
}
}
}
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
}
public sealed class FooMap : ClassMap<Foo>
{
public FooMap()
{
Map(m => m.Id);
Map(m => m.Name);
}
}
}
After
using System;
namespace csvHelperTest
{
class Program
{
private string _path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "@/csv/file.csv";
static void Main(string[] args)
{
using (var reader = new StreamReader(_path))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
csv.Context.RegisterClassMap<FooMap>();
var records = csv.GetRecords<Foo>();
}
}
}
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
}
public sealed class FooMap : ClassMap<Foo>
{
public FooMap()
{
Map(m => m.Id);
Map(m => m.Name);
}
}
}
public enum ClassInfo
{
oneGrade,
twoGrade,
threeGrade
}
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
public ClassInfo Class { get; set; }
}
public sealed class FooMap : ClassMap<Foo>
{
public FooMap()
{
Map(m => m.Id);
Map(m => m.Name);
Map(m => m.Class);
}
}
void Main()
{
using (var reader = new StreamReader("path\\to\\file.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
csv.Context.RegisterClassMap<FooMap>();
csv.GetRecords<Foo>().ToList().Dump();
}
}
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
public Json Json { get; set; }
}
public class Json
{
public string Foo { get; set; }
}
public class JsonConverter<T> : DefaultTypeConverter
{
public override object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData)
{
return JsonConvert.DeserializeObject<T>(text);
}
public override string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData)
{
return JsonConvert.SerializeObject(value);
}
}
public class FooMap : ClassMap<Foo>
{
public FooMap()
{
Map(m => m.Id);
Map(m => m.Name);
Map(m => m.Json).TypeConverter<JsonConverter<Json>>();
}
}
Before
public class JsonConverter<T> : DefaultTypeConverter
{
public override object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData)
{
return JsonConvert.DeserializeObject<T>(text);
}
public override string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData)
{
return JsonConvert.SerializeObject(value);
}
}
After
public class ClassInfoConverter<T> : DefaultTypeConverter
{
public override object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData)
{
// return ClassInfoConverter.DeserializeObject<T>(text);
return Enum.Parse<ClassInfo>(text);
}
public override string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData)
{
//return ClassInfoConverter.SerializeObject(value);
return value.ToString();
}
}
Before
public sealed class FooMap : ClassMap<Foo>
{
public FooMap()
{
Map(m => m.Id);
Map(m => m.Name);
Map(m => m.Class);
}
}
After
public sealed class FooMap : ClassMap<Foo>
{
public FooMap()
{
Map(m => m.Id);
Map(m => m.Name);
Map(m => m.Class).TypeConverter<ClassInfoConverter<ClassInfo>>();
}
}