Dameng.SepEx.Generator 0.2.4

There is a newer version of this package available.
See the version list below for details.
dotnet add package Dameng.SepEx.Generator --version 0.2.4
                    
NuGet\Install-Package Dameng.SepEx.Generator -Version 0.2.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Dameng.SepEx.Generator" Version="0.2.4">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Dameng.SepEx.Generator" Version="0.2.4" />
                    
Directory.Packages.props
<PackageReference Include="Dameng.SepEx.Generator">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Dameng.SepEx.Generator --version 0.2.4
                    
#r "nuget: Dameng.SepEx.Generator, 0.2.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Dameng.SepEx.Generator@0.2.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Dameng.SepEx.Generator&version=0.2.4
                    
Install as a Cake Addin
#tool nuget:?package=Dameng.SepEx.Generator&version=0.2.4
                    
Install as a Cake Tool

Dameng.SepEx

A high-performance source generator for working with separated values (CSV/TSV) files in C#. This library extends the excellent Sep library by providing compile-time code generation for strongly-typed reading and writing of CSV data.

Features

  • Source Generator: Automatically generates type-safe CSV readers and writers at compile time
  • High Performance: Built on top of the fast Sep library
  • Attribute-Based Configuration: Use attributes to configure column mapping, formatting, and behavior
  • Flexible Column Mapping: Support for column names, indexes, default values, and formatting
  • Type Safety: Compile-time type checking and IntelliSense support

Installation

Install the NuGet packages:

dotnet add package Dameng.SepEx
dotnet add package Dameng.SepEx.Generator

Quick Start

  1. Define your data model with attributes:
[GenSepParsable]
public partial class Person
{
    [SepColumnIndex(0)]
    public string Name { get; set; }
    
    [SepColumnName("Age")]
    public int Age { get; set; }
    
    [SepDefaultValue("Unknown")]
    public string City { get; set; }
    
    [SepIgnore]
    public string InternalId { get; set; }
}
  1. Read and write CSV data:
// Reading
using var reader = Sep.Reader().FromFile("people.csv");
foreach (var person in reader.GetRecords<Person>())
{
    Console.WriteLine($"{person.Name} is {person.Age} years old");
}

// Writing
var people = new List<Person> { /* ... */ };
using var writer = Sep.Writer().ToFile("output.csv");
writer.WriteRecord(people);

External Data Model

  1. Generate type info using attributes:
[GenSepTypeInfo<Person>()]
public partial class PersonTypeInfo;
  1. Read and write CSV data:
// Reading
using var reader = Sep.Reader().FromFile("people.csv");
foreach (var person in reader.GetRecords<Person>(PersonTypeInfo.Person))
{
    Console.WriteLine($"{person.Name} is {person.Age} years old");
}

// Writing
var people = new List<Person> { /* ... */ };
using var writer = Sep.Writer().ToFile("output.csv");
writer.WriteRecord(people, PersonTypeInfo.Person);

Available Attributes

  • [GenSepTypeInfo<T>()]: Generate type info for the specified type
  • [SepColumnName(string name)]: Specify column name
  • [SepColumnIndex(int index)]: Specify column index for reading/writing order
  • [SepDefaultValue(object value)]: Set default value when column is missing
  • [SepColumnIgnore]: Ignore property/field during CSV operations
  • [SepColumnFormat(string format)]: Specify format for writing values

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.12 242 8/25/2025
0.2.10 243 8/25/2025
0.2.9 237 8/25/2025
0.2.7 243 8/25/2025
0.2.6 97 8/22/2025
0.2.5 92 8/22/2025
0.2.4 102 8/22/2025
0.2.3 99 8/22/2025
0.2.2 96 8/22/2025
0.2.1 106 8/22/2025
0.1.0 122 8/21/2025