DotNetHelper.Serialization.Csv
DotNetHelper.Serialization.Csv is a lightweight serialization library for csv.
Package | Tests | Code Coverage |
---|---|---|
How to use
var csvSerializer = new DataSourceCsv();
the class DataSourceCSV have access to the following apis
//Serialize an object to the provided stream
void SerializeToStream<T>(T obj, Stream stream, int bufferSize = 1024, bool leaveStreamOpen = false) where T : class;
void SerializeToStream(object obj, Type type, Stream stream, int bufferSize = 1024, bool leaveStreamOpen = false);
//Serialize an object to a new instance of a stream and returns the stream
Stream SerializeToStream<T>(T obj, int bufferSize = 1024) where T : class;
Stream SerializeToStream(object obj, Type type, int bufferSize = 1024);
//Serialize an object to a string
string SerializeToString(object obj);
string SerializeToString<T>(T obj) where T : class;
//Retrieve a list of either generics,objects,or dynamics from either a stream or string
List<dynamic> DeserializeToList(string content);
List<dynamic> DeserializeToList(Stream stream, int bufferSize = 1024, bool leaveStreamOpen = false);
List<T> DeserializeToList<T>(string content) where T : class;
List<T> DeserializeToList<T>(Stream stream, int bufferSize = 1024, bool leaveStreamOpen = false) where T : class;
List<object> DeserializeToList(string content, Type type);
//Retrieve a dynamic object from String or stream
dynamic Deserialize(string content);
dynamic Deserialize(Stream stream, int bufferSize = 1024, bool leaveStreamOpen = false);
//Retrieve a strongly type from a string or stream
T Deserialize<T>(string content) where T : class;
T Deserialize<T>(Stream stream, int bufferSize = 1024, bool leaveStreamOpen = false) where T : class;
//Retrieve a object from a string or stream
object Deserialize(string content, Type type);
object Deserialize(Stream stream, Type type, int bufferSize = 1024, bool leaveStreamOpen = false);
Serialization with Files
This example is going to reference a employee class and two global variables
public class Employee {
public string FirstName { get; set; } = "Jon";
public string LastName { get; set; } = "Last";
public int Id { get; set; }
}
var csvSerializer = new DataSourceCsv();
var employee = new Employee {Id = 1};
Write single object to file
using (var fileStream = new FileStream($@"C:\Temp\employee.csv", FileMode.Create, FileAccess.Write))
csvSerializer.SerializeToStream(employee, fileStream);
Write list of objects to file
using (var fileStream = new FileStream($@"C:\Temp\employeeList.csv", FileMode.Create, FileAccess.Write))
csvSerializer.SerializeListToStream(new List<Employee>(){employee}, fileStream);
Read single object from file
var employeeFromFile = csvSerializer.Deserialize<Employee>(new StreamReader($@"C:\Temp\employee.csv").BaseStream);
Read list of objects from file
var employeesFromFile = csvSerializer.DeserializeToList<Employee>(new StreamReader($@"C:\Temp\employeeList.csv").BaseStream);