/// <summary>最简单的2个类型之间的映射</summary> static void Test1() { TinyMapper.Bind<Person,PersonDto>(); //实例化一个Person对象 var person = new Person { Id = Guid.NewGuid().ToString(), Name = "John", Age = 22 }; //映射 var personDto = TinyMapper.Map<PersonDto>(person); }
运行看看结果:
3.Tiny Mapper 指定配置使用
有时候对象的字段名称并不一样,而且可能要忽略某些字段,这个时候就要使用更加灵活的配置了。
看例子,为了演示,我们特意修改2个类型的字段名称不一样.如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
public class Person { public String Id { get; set; } public String Name { get; set; } public Int32 Age { get; set; } }
public class PersonDto { public String Id { get; set; } //注意这里的字段名称:UserName public String UserName { get; set; } public Int32 Age { get; set; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/// <summary>使用配置项指定和忽略字段</summary> static void Test2() { TinyMapper.Bind<Person, PersonDto>(config => { config.Ignore(x => x.Id);//忽略ID字段 config.Bind(x => x.Name, y => y.UserName);//将源类型和目标类型的字段对应绑定起来 config.Bind(x => x.Age, y => y.Age);//将源类型和目标类型的字段对应绑定起来 }); var person = new Person { Id = Guid.NewGuid().ToString(), Name = "John", Age = 22 }; var personDto = TinyMapper.Map<PersonDto>(person); }
public class Person { public String Id { get; set; } public String Name { get; set; } public Int32 Age { get; set; } public Address Address { get; set; } public List<String> Emails { get; set; } }
public class PersonDto { public String Id { get; set; } public String UserName { get; set; } public Int32 Age { get; set; } public Address Address { get; set; } public List<String> Emails { get; set; } }
public sealed class Address { public string Phone { get; set; } public string Street { get; set; } public string ZipCode { get; set; } }