zoukankan      html  css  js  c++  java
  • AutoMapper 初次使用心得

    本例以asp.net webform为例:

    结构:

    主要代码:AutoMapperConfig 类

    public class AutoMapperConfig
    {
    public static void RegisterAutoMapper()
    {
    AutoMapper.Configuration.Configure();
    }
    }

    Configuration类:

    public static void Configure()
    {
    Mapper.Initialize(cfg =>
    {
    var typeToAddProfile = Assembly.GetExecutingAssembly().GetTypes();
    foreach (var item in typeToAddProfile)
    {
    if (item.BaseType != null && item.BaseType.Name == "Profile" && !item.BaseType.Name.Equals("Configuration"))
    {
    object o = Activator.CreateInstance(item);
    cfg.AddProfile(o as Profile);
    }
    }
    });
    Mapper.AssertConfigurationIsValid();
    }

    Profiles 下 TestProfiles类:

    public class TestProfiles : Profile
    {
    protected override void Configure()
    {
    CreateMap<TestModel, DTO_TestModel>();
    //.ForMember(a => a.Address, b => b.MapFrom(c => c.Name));
    }
    }

    Golbal 中:

    protected void Application_Start(object sender, EventArgs e)
    {
    AutoMapperWeb.AutoMapperConfig.RegisterAutoMapper();
    }

    protected void Page_Load(object sender, EventArgs e)
    {
    var t1 = new List<TestModel>()
    {
    new TestModel(){Id=1,Name="张三",Age=25,Sex="男",Address="湖南省长沙市雨花区长房天翼未来城"},
    new TestModel(){Id=1,Name="李四",Age=25,Sex="男",Address="湖南省长沙市雨花区长房天翼未来城",QQ="9375671",Email="93759671@qq.com",Phone="15725032"}
    };


    var list = Mapper.Map<List<TestModel>, List<DTO_TestModel>>(t1);
    string str = string.Format("<div><hr/>");
    foreach (var item in list)
    {
    str += string.Format("姓名:{0},<br/>",item.Name);
    str += string.Format("家庭住址:{0},<br/>", item.Address);
    str += string.Format("QQ:{0},<br/>", item.QQ);
    str += string.Format("邮箱:{0}<hr/>", item.Email);
    }
    str += string.Format("</div>");
    Response.Write(str);
    Response.End();
    }

  • 相关阅读:
    一个开始搞Linux的现任前端开发,用U盘装CentOS
    .NET:处理数据库事务中的并发
    Xml与对象之间的序列化、反序列化
    嵌套类
    .NET陷阱之五:奇怪的OutOfMemoryException——大对象堆引起的问题与对策
    backbone 之事件(events)
    一道笔试指针题目详解
    linux安装Cassandra数据库
    Angularjs Controller 间通信机制
    NLucene 和 Lucene .NET
  • 原文地址:https://www.cnblogs.com/KenFine/p/5961431.html
Copyright © 2011-2022 走看看