NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #1378 most downloaded on NuGet
TinyMapper - a tiny and quick object mapper for .Net.
Last release 7 years ago
no release in 18 months
Ships unpredictably
gaps range from 8 days to 1.7 years
Some releases are documented
notes for 3 of 12 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
18 releases · first in 2015
Nothing published for this version
Nothing published for this version
fixed static fields mapping thanks to summitn
fixed static fields mapping thanks to summitn
One column per quarter.
added support supports circular reference mapping
Thanks to: sergiorykov, xihu69
https://github.com/TinyMapper/TinyMapper/releases/tag/v2.1.4-beta
Thanks to: sergiorykov, xihu69
var source = new Node
{
Id = "1",
Next = new Node
{
Id = "2",
Next = new Node
{
Id = "3",
Child = new[]
{
new Node
{
Id = " 123 1"
},
new Node
{
Id = "123 2"
}
}
}
},
Child = new[]
{
new Node
{
Id = "1 1"
},
new Node
{
Id = "1 2"
}
}
};
TinyMapper.Bind<Node, Node>();
var target = TinyMapper.Map<Node, Node>(source);
Assert.Equal(source.Id, target.Id);
Assert.Equal(source.Next.Id, target.Next.Id);
Assert.Equal(source.Next.Next.Id, target.Next.Next.Id);
Assert.Equal(source.Next.Next.Id, target.Next.Next.Id);
Assert.Equal(source.Next.Next.Child, target.Next.Next.Child);
Assert.Equal(source.Child, target.Child);
Improved mapping, i.e. now it's possible to map properties from other classes source.Address.Street
source.Address.Street TinyMapper.Bind<PersonDto, Person>(
config =>
{
config.Bind(source => source.Address.Street, target => target.Street);
config.Bind(source => source.Address.Phone, target => target.Phone);
}
);
https://github.com/TinyMapper/TinyMapper/releases/tag/v2.1.3-beta
source.Address.Street TinyMapper.Bind<PersonDto, Person>(
config =>
{
config.Bind(source => source.Address.Street, target => target.Street);
config.Bind(source => source.Address.Phone, target => target.Phone);
}
);
improved collection mapping (30% faster)
improved collection mapping (30% faster)
The time required to map one object with two collections (int and string), each collection has 100 items
Method | Mean | Error | StdDev |
------------------------------ |----------:|----------:|----------:| CollectionMapping_AutoMapper | 27.696 us | 0.5117 us | 1.2259 us | CollectionMapping_TinyMapper | 6.765 us | 0.0660 us | 0.0618 us | CollectionMapping_Handwritten | 3.521 us | 0.0387 us | 0.0343 us |
https://github.com/TinyMapper/TinyMapper/releases/tag/v2.1.2-beta
Before
| Method | Mean | Error | StdDev |
|---|---|---|---|
| CollectionMapping_AutoMapper | 27.753 us | 0.1789 us | 0.1494 us |
| CollectionMapping_TinyMapper | 9.594 us | 0.0912 us | 0.0853 us |
| CollectionMapping_Handwritten | 3.560 us | 0.0709 us | 0.0729 us |
After
| Method | Mean | Error | StdDev |
|---|---|---|---|
| CollectionMapping_AutoMapper | 27.696 us | 0.5117 us | 1.2259 us |
| CollectionMapping_TinyMapper | 6.765 us | 0.0660 us | 0.0618 us |
| CollectionMapping_Handwritten | 3.521 us | 0.0387 us | 0.0343 us |
Map can be called in parallel to Map methods, but cannot be called in parallel to Bind method
fixed: DeepCloneable member binding with custom mapping
fixed: DeepCloneable member binding with custom mapping
Thanks to: Gaclaudiu
fixed: Case sensitive binding Thanks to: Lecamarade
fixed: Case sensitive binding
Thanks to: Lecamarade
TinyMapper allows to set concrete type if required
TinyMapper allows to set concrete type if required
More Info: http://bit.ly/1DzDlPJ
Thanks to: Teknogecko, Oryol, iEmiya
TinyMapper allows to set concrete type if required, i.e.
public class Source
{
public IList<int> Ints { get; set; }
public List<string> Strings { get; set; }
}
public class Target
{
public List<int> Ints { get; set; }
public IEnumerable<string> Strings { get; set; }
}
TinyMapper.Bind<Source, Target>(config =>
{
config.Bind(target => target.Strings, typeof(List<string>));
});
Thanks to: Teknogecko, oryol
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →