AutoMapper 学习笔记

AutoMapper 学习笔记usingSystem usingSystem Collections Generic usingSystem Linq usingSystem Text usingSystem Threading Tasks usingAutoMap usingSystem Data namespaceCon classProg

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using AutoMapper; using System.Data; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { //1.普通转换 Name name1 = new Name() { FirstName = "L", LastName = "jz" }; Mapper.CreateMap 
  
    () .BeforeMap((name, nameDto) => Console.WriteLine("hello world before")) .AfterMap((name, nameDto) => Console.WriteLine("hello world after")); NameDto nameDto1 = Mapper.Map 
   
     (name1); Console.WriteLine("1"); Console.WriteLine(nameDto1.FirstName + nameDto1.LastName); Console.WriteLine(); //Console.ReadKey(); //整体设置 //2.整体即时转换 Mapper.Reset(); Name name2 = new Name() { FirstName = "L", LastName = "jz" }; Mapper.CreateMap 
    
      () .ConstructUsing(name => new NameDto() { AllName = name.FirstName + name.LastName }); NameDto nameDto2 = Mapper.Map 
     
       (name2); Console.WriteLine("2"); Console.WriteLine(nameDto2.AllName); Console.WriteLine(); //Console.ReadKey(); //3.整体通过TypeConverter类型转换 Mapper.Reset(); Name name3 = new Name() { FirstName = "L", LastName = "jz" }; Mapper.CreateMap 
      
        () .ConvertUsing 
       
         (); NameDto nameDto3 = Mapper.Map 
        
          (name3); Console.WriteLine("3"); Console.WriteLine(nameDto3.AllName); Console.WriteLine(); //Console.ReadKey(); //单属性设置 //4.属性条件转换 Mapper.Reset(); Name name4 = new Name() { FirstName = "L", LastName = "jz" }; Mapper.CreateMap 
         
           () .ForMember(name => name.FirstName, opt => opt.Condition(name => !name.FirstName.Equals("l", StringComparison.OrdinalIgnoreCase))); NameDto nameDto4 = Mapper.Map 
          
            (name4); Console.WriteLine("4"); Console.WriteLine(string.IsNullOrEmpty(nameDto4.FirstName)); Console.WriteLine(); //Console.ReadKey(); //5.属性忽略 Mapper.Reset(); Name name5 = new Name() { FirstName = "L", LastName = "jz" }; Mapper.CreateMap 
           
             () .ForMember(name => name.FirstName, opt => opt.Ignore()); NameDto nameDto5 = Mapper.Map 
            
              (name5); Console.WriteLine("5"); Console.WriteLine(string.IsNullOrEmpty(nameDto5.FirstName)); Console.WriteLine(); //Console.ReadKey(); //6.属性转换 Mapper.Reset(); Name name6 = new Name() { FirstName = "L", LastName = "jz" }; Mapper.CreateMap 
             
               () .ForMember(name => name.AllName, opt => opt.MapFrom(name => name.FirstName + name.LastName)) .ForMember(name => name.FirstName, opt => opt.MapFrom(name=>name.FirstName)); NameDto nameDto6 = Mapper.Map 
              
                (name6); Console.WriteLine("6"); Console.WriteLine(nameDto6.AllName); Console.WriteLine(); //Console.ReadKey(); //7.属性通过ValueResolver转换 Mapper.Reset(); Name name7 = new Name() { FirstName = "L", LastName = "jz" }; Mapper.CreateMap 
               
                 () .ForMember(storeDto => storeDto.Name, opt => opt.ResolveUsing 
                
                  ()); StoreDto store1 = Mapper.Map 
                 
                   (name7); Console.WriteLine("7"); Console.WriteLine(store1.Name.FirstName + store1.Name.LastName); Console.WriteLine(); //Console.ReadKey(); //8.属性填充固定值 Mapper.Reset(); Name name8 = new Name() { FirstName = "L", LastName = "jz" }; Mapper.CreateMap 
                  
                    () .ForMember(name => name.AllName, opt => opt.UseValue 
                   
                     ("ljzforever")); NameDto nameDto8 = Mapper.Map 
                    
                      (name8); Console.WriteLine("8"); Console.WriteLine(nameDto8.AllName); Console.WriteLine(); //Console.ReadKey(); //9.属性格式化 Mapper.Reset(); Name name9 = new Name() { FirstName = "L", LastName = "jz" }; Mapper.CreateMap 
                     
                       () .ForMember(name => name.FirstName, opt => opt.AddFormatter 
                      
                        ()); NameDto nameDto9 = Mapper.Map 
                       
                         (name9); Console.WriteLine("9"); Console.WriteLine(nameDto9.FirstName); Console.WriteLine(); //Console.ReadKey(); //10.属性null时的默认值 Mapper.Reset(); Name name10 = new Name() { FirstName = "L" }; Mapper.CreateMap 
                        
                          () .ForMember(name => name.LastName, opt => opt.NullSubstitute("jz")); NameDto nameDto10 = Mapper.Map 
                         
                           (name10); Console.WriteLine("10"); Console.WriteLine(nameDto10.LastName); Console.WriteLine(); //Console.ReadKey(); //其它设置与特性 //11.转换匿名对象 Mapper.Reset(); object name11 = new { FirstName = "L", LastName = "jz" }; NameDto nameDto11 = Mapper.DynamicMap 
                          
                            (name11); Console.WriteLine("11"); Console.WriteLine(nameDto11.FirstName + nameDto11.LastName); Console.WriteLine(); //Console.ReadKey(); //12.转换DataTable Mapper.Reset(); DataTable dt = new DataTable(); dt.Columns.Add("FirstName", typeof(string)); dt.Columns.Add("LastName", typeof(string)); dt.Rows.Add("L", "jz"); List 
                           
                             nameDto12 = Mapper.DynamicMap 
                            
                              >(dt.CreateDataReader()); Console.WriteLine("12"); Console.WriteLine(nameDto12[0].FirstName + nameDto12[0].LastName); Console.WriteLine(); //Console.ReadKey(); //emitMapper error //List 
                             
                               nameDto20 = EmitMapper.ObjectMapperManager.DefaultInstance.GetMapper 
                              
                                >().Map(dt.CreateDataReader()); //13.转化存在的对象 Mapper.Reset(); Mapper.CreateMap 
                               
                                 () .ForMember(name => name.LastName, opt => opt.Ignore()); Name name13 = new Name() { FirstName = "L" }; NameDto nameDto13 = new NameDto() { LastName = "jz" }; Mapper.Map 
                                
                                  (name13, nameDto13); //nameDto13 = Mapper.Map 
                                 
                                   (name13);//注意,必需使用上面的写法,不然nameDto13对象的LastName属性会被覆盖 Console.WriteLine("13"); Console.WriteLine(nameDto13.FirstName + nameDto13.LastName); Console.WriteLine(); //Console.ReadKey(); //14.Flatten特性 Store.Name.FirtName=FlattenName.NameFirstname Mapper.Reset(); Mapper.CreateMap 
                                  
                                    (); Store store2 = new Store() { Name = new Name() { FirstName = "L", LastName = "jz" } }; FlattenName nameDto14 = Mapper.Map 
                                   
                                     (store2); Console.WriteLine("14"); Console.WriteLine(nameDto14.NameFirstname + nameDto14.NameLastName); Console.WriteLine(); //Console.ReadKey(); //15.将Dictionary转化为对象,现在还不支持 Mapper.Reset(); Mapper.CreateMap 
                                    
                                      , Name>(); Dictionary 
                                     
                                       dict = new Dictionary 
                                      
                                        (); dict.Add("FirstName", "L"); //Name name15 = Mapper.DynamicMap 
                                       
                                         , Name>(dict); Name name15 = Mapper.Map 
                                        
                                          , Name>(dict); Console.WriteLine("15"); Console.WriteLine(name15.FirstName); Console.WriteLine(); Console.ReadKey(); } } public class Store { public Name Name { get; set; } public int Age { get; set; } } public class Name { public string FirstName { get; set; } public string LastName { get; set; } } public class StoreDto { public NameDto Name { get; set; } public int Age { get; set; } } public class NameDto { public string FirstName { get; set; } public string LastName { get; set; } public string AllName { get; set; } } public class FlattenName { public string NameFirstname { get; set; } public string NameLastName { get; set; } } public class NameConverter : TypeConverter 
                                         
                                           { protected override NameDto ConvertCore(Name source) { return new NameDto() { AllName = source.FirstName + source.LastName }; } } public class NameResolver : ValueResolver 
                                          
                                            { protected override NameDto ResolveCore(Name source) { return new NameDto() { FirstName = source.FirstName, LastName = source.LastName,AllName=source.FirstName+source.LastName }; } } public class NameFormatter : ValueFormatter 
                                           
                                             { protected override string FormatValueCore(NameDto name) { return name.FirstName + name.LastName; } } public class StringFormatter : ValueFormatter 
                                            
                                              { protected override string FormatValueCore(string name) { return name + "-"; } } } 
                                             
                                            
                                           
                                          
                                         
                                        
                                       
                                      
                                     
                                    
                                   
                                  
                                 
                                
                               
                              
                             
                            
                           
                          
                         
                        
                       
                      
                     
                    
                   
                  
                 
                
               
              
             
            
           
          
         
        
       
      
     
    
  

转载自:http://www.360doc.com/content/13/1127/10/7427585_332487873.shtml

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220787.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午7:39
下一篇 2026年3月17日 下午7:39


相关推荐

  • SpringMVC工作流程及其原理

    SpringMVC工作流程及其原理1、序言一、什么是SpringMVC?pring 配备构建Web 应用的全功能MVC框架。Spring可以很便捷地和其他MVC框架集成,如Struts,Spring 的MVC框架用控制反转把业务对象和控制逻辑清晰地隔离。它也允许以声明的方式把请求参数和业务对象绑定。springmvc是一个基于mvc的web框架。springmvc是spring框架的一个模块,springmvc和s…

    2022年6月7日
    27
  • Idea 搭建 springboot 项目

    Idea 搭建 springboot 项目Idea 搭建 springboot 项目

    2026年3月18日
    7
  • dategrip激活码[免费获取][通俗易懂]

    (dategrip激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~ML…

    2022年3月21日
    63
  • AI智能体|扣子(Coze)搭建【一键转换为Word/pdf/Excel】工作流保姆级教学

    AI智能体|扣子(Coze)搭建【一键转换为Word/pdf/Excel】工作流保姆级教学

    2026年3月13日
    4
  • 【2012】笔试面试总结(一)

    【2012】笔试面试总结(一)

    2021年8月20日
    60
  • 高斯,拉普拉斯分布

    高斯,拉普拉斯分布一般来说我们可以使用正则化来避免过度拟合 但是实际上什么是正则化 什么是通用技术 以及它们有何不同 正规化是我们对学习算法所做的任何修改 旨在减少其泛化误差 而不是其训练误差 换句话说 通过防止算法过度拟合训练数据集 可以将正则化用于训练对看不见的数据更好地泛化的模型 那么 如何修改逻辑回归算法以减少泛化误差呢 我发现的常见方法是高斯 拉普拉斯 L1 和 L2 高斯还是 L2 拉普拉斯还是 L1 这有什么不同吗 可以证明 L2 和高斯或 L1 和拉普拉斯正则化对算法具有同等影响 获得正则化效果的方法有两种

    2025年6月21日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号