PH.TinyMapper 0.0.1

dotnet add package PH.TinyMapper --version 0.0.1
NuGet\Install-Package PH.TinyMapper -Version 0.0.1
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="PH.TinyMapper" Version="0.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PH.TinyMapper --version 0.0.1
#r "nuget: PH.TinyMapper, 0.0.1"
#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.
// Install PH.TinyMapper as a Cake Addin
#addin nuget:?package=PH.TinyMapper&version=0.0.1

// Install PH.TinyMapper as a Cake Tool
#tool nuget:?package=PH.TinyMapper&version=0.0.1

PH.TinyMapper

A c# tiny object mapper

The mapper remaps properties with the same name between source and destination (if these have the same type or if they are complex properties and a mapping between left and right is possible)

Code Sample

Copy Property from source to target

 //first define a class for Source:
public class Somesource
{
    public Guid Id { get; set; }

    public DateTime? DateTimeNullable { get; set; }
    public string    Name             { get; set; }

    public DateTime UtcNow { get; }
}

// then a class for Target:
public class SomeDestination
{
    public Guid Id { get; set; }

    public DateTime? DateTimeNullable { get; set; }
    public string    Name             { get; set; }
    public string    LastName         { get; set; }

    public DateTime? DateTimeNullable2 { get; set; }
}


//Init a Mapper            
var mapper      = Mapper.Instance;
var now         = DateTime.UtcNow;
            
 var source      = new Somesource { Id = Guid.NewGuid(), Name = "John Doe", DateTimeNullable = null };
 var destination = new SomeDestination(){ DateTimeNullable = now, DateTimeNullable2 = now };
 
 
 mapper.Map(source, destination);
 
 //now destination.Name are 'John Doe' and destination.Id is the same Guid of source.Id
 // and desination.DateTimeNullable is null.
            
            

Create a new instance of target class within mapper

var src = new Somesource { Id = Guid.NewGuid(), Name = "John Doe" };
//create a new instance of target class within mapper:
var dst = PH.TinyMapper.Mapper.Instance.Map<Somesource, SomeDestination>(src);

Skipping properties

If you need to exclude a source or destination property you need to decorate it with the SkipMappingAttribute attribute

public class DestinationOrSourceWithSkip 
{
    /// <summary>
    /// Gets or sets the name of the destination.
    /// </summary>
    /// <remarks>
    /// This property is marked with the SkipMapping attribute, 
    /// which means it will not be included in the mapping process by the TinyMapper.
    /// </remarks>
    [SkipMapping]
    public string Name     { get; set; }
    
}
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.
  • net8.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
0.0.1 106 2/19/2024

First release