• Home
  • API
  • Change Log
  • Github

    DotNetHelper.Serialization.Csv

    DotNetHelper.Serialization.Csv is a lightweight serialization library for csv.

    Package Tests Code Coverage
    Build Status Build Status codecov

    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);
    

    Serialization with JSON

    JSON LINK

    • Improve this Doc
    Back to top Copyright © 2019 Joseph McNeal Jr