RG.ZeroMapper 1.0.2

dotnet add package RG.ZeroMapper --version 1.0.2
                    
NuGet\Install-Package RG.ZeroMapper -Version 1.0.2
                    
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="RG.ZeroMapper" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RG.ZeroMapper" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="RG.ZeroMapper" />
                    
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 RG.ZeroMapper --version 1.0.2
                    
#r "nuget: RG.ZeroMapper, 1.0.2"
                    
#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 RG.ZeroMapper@1.0.2
                    
#: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=RG.ZeroMapper&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=RG.ZeroMapper&version=1.0.2
                    
Install as a Cake Tool

RG.ZeroMapper

NuGet

RG.ZeroMapper is a Zero boilerplate (kind of) C# object mapper.

Bar b = new { X = 1 };

// Auto implicit cast
Foo f = b;

// The only boilerplate: Mark destination class as partial
partial class Foo {
    public int X;
    public string S;
}

partial class Bar {
    // same name, but it's a property instead of a field
    public int X { get; set; }
    
    // same name, different name casing
    public string s;
}

RG.ZeroMapper.Structural

NuGet NuGet

RG.ZeroMapper.Structural leverages RG.ZeroMapper to enable structural typing in your C# code:

class A {
    public int X;
    public int Y;
}

class B {
    public int Y;
    public int Z;
}

record C() : Constant(1);

partial class D : Intersect<A, B, C> {
    // D implicitly contains Y
}

partial class E : Union<A, B, C> {
    // E implicitly contains X, Y, Z
    // E can be implicitly cast to int with the value of 1
    // E can be implicitly cast from int as long as the value is 1
    // E can be implicitly cast to C?
    // Unions can only contain 1 constant value of each value type
}

partial class F : OneOf<A, B, C> {
    // F is a discriminated union
    // F can be cast into A?, B?, or C?
    // Discriminated unions don't inherit any property
}
There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

  • .NETStandard 2.0

    • 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
1.0.2 278 12/17/2025
1.0.1 270 12/17/2025
0.0.5 274 12/16/2025
0.0.3 188 12/4/2025
0.0.2 188 12/4/2025
0.0.1 154 11/23/2025