-
Notifications
You must be signed in to change notification settings - Fork 35
M_CodeJam_Mapping_MapperBuilder_2_MapMember__1
Andrew Koryavchenko edited this page Jun 17, 2018
·
9 revisions
Adds member mapper.
Namespace: CodeJam.Mapping
Assembly: CodeJam.Blocks (in CodeJam.Blocks.dll) Version: 2.0.0.0
C#
public MapperBuilder<TFrom, TTo> MapMember<T>(
Expression<Func<TTo, T>> toMember,
Expression<Func<TFrom, T>> setter
)
VB
Public Function MapMember(Of T) (
toMember As Expression(Of Func(Of TTo, T)),
setter As Expression(Of Func(Of TFrom, T))
) As MapperBuilder(Of TFrom, TTo)
F#
member MapMember :
toMember : Expression<Func<'TTo, 'T>> *
setter : Expression<Func<'TFrom, 'T>> -> MapperBuilder<'TFrom, 'TTo>
- toMember
- Type: System.Linq.Expressions.Expression(Func(TTo, T))
Expression that returns a member to map. - setter
- Type: System.Linq.Expressions.Expression(Func(TFrom, T))
Expression to set the member.
- T
- Type of the member to map.
Type: MapperBuilder(TFrom, TTo)
Returns this mapper.
This example shows how to explicitly convert one value to another.
C#
[TestFixture]
public class MapMemberTests
{
private class Class1
{
public int Prop1 { get; set; }
public string Field1;
}
private class Class2
{
public string Prop1 { get; set; }
public DateTime? Field1;
}
private static readonly Mapper<Class1, Class2> _class1ToClass2Mapper =
Map.GetMapper<Class1, Class2>(
m =>
m.MapMember(c2 => c2.Field1, c1 => DateTime.Parse(c1.Field1).AddDays(1)));
[Test]
public void Test1()
{
var c2 = _class1ToClass2Mapper.Map(
new Class1
{
Prop1 = 41,
Field1 = "2016-01-01"
});
Assert.That(c2.Prop1, Is.EqualTo("41"));
Assert.That(c2.Field1?.Year, Is.EqualTo(2016));
Assert.That(c2.Field1?.Day, Is.EqualTo(2));
}
}